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.
bons = df[df['note'] > 12]Décomposé
df['note'] → la colonne note
df['note'] > 12 → Series booléenne [True, False, True...]
df[ ... ] → garde les lignes où c'est True& 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 Lyon
df[df['ville'].isin(['Paris', 'Lyon'])]# ville PAS Paris
df[df['ville'] != 'Paris'].str.contains('motif') vrai si la chaîne contient le motif
.isna() / .notna() valeurs manquantes / non manquantesdf = pd.DataFrame({
'nom': ['Alice','Bob','Charlie'],
'note': [14, 11, 17]
})
bons = df[df['note'] > 12]
print(bons)
# nom note
# 0 Alice 14
# 2 Charlie 17Le 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 →