Exercice 34 / 100

Pandas - filtres

ConsigneSélectionnez les étudiants avec note > 12

📖 Cours

Filtrer un DataFrame = garder uniquement les lignes qui respectent une condition. Le principe est le même qu'un masque booléen NumPy.

Syntaxe

df[condition]

La condition est une expression qui renvoie une Series de booléens (un par ligne). Pandas garde les lignes True.

Filtre simple

bons = df[df['note'] > 12]

Décomposé

df['note'] → la colonne notedf['note'] > 12 → Series booléenne [True, False, True...]df[ ... ] → garde les lignes où c'est True
Filtrer un DataFrame reprend le principe du masque NumPy : la condition rend une série de booléens, et pandas ne garde que les lignes vraies
Filtrer un DataFrame reprend le principe du masque NumPy : la condition rend une série de booléens, et pandas ne garde que les lignes vraies

Conditions multiples

& ET (and)| OU (or)~ NON (not)

Comme NumPy : utilise & | ~ et jamais and/or/not.

Parenthèses obligatoires autour de chaque condition.

# note > 12 ET ville == 'Paris'df[(df['note'] > 12) & (df['ville'] == 'Paris')]
# ville Paris OU Lyondf[df['ville'].isin(['Paris', 'Lyon'])]
# ville PAS Parisdf[df['ville'] != 'Paris']

Méthodes utiles pour filtrer

.isin([...])
vrai si la valeur est dans la liste
.between(a, b)
vrai si entre a et b inclus
.str.contains('motif') vrai si la chaîne contient le motif.isna() / .notna() valeurs manquantes / non manquantes

Exemple complet

df = pd.DataFrame({ 'nom': ['Alice','Bob','Charlie'], 'note': [14, 11, 17]})bons = df[df['note'] > 12]print(bons)# nom note# 0 Alice 14# 2 Charlie 17

Le résultat est un nouveau DataFrame. L'original df n'est pas modifié.

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →