Partie 1 · Sélection et filtrage
Sélectionner des colonnes, des lignes, filtrer
Colonnes
df['Nom']: simples crochets, une colonne, renvoie une Series.df[['Col1', 'Col2']]: doubles crochets (une liste de noms), renvoie un DataFrame.
Lignes : .iloc et .loc
| Repère | Exemple du cours | |
|---|---|---|
.iloc[] (Integer Location) | position, à partir de 0 | df.iloc[0:5, 1] : 5 premières lignes de la 2e colonne |
.loc[] (Label Location) | étiquettes de lignes et de colonnes | df.loc[100:200, 'Nom'] |
Détail à connaître (précision ajoutée) : avec .iloc la borne de fin est exclue comme dans une liste Python ; avec .loc sur des étiquettes, la borne de fin est incluse.
Vérifie que tu as compris
Vérifie que tu as compris
df.iloc[0:3] sélectionne :Filtrer avec un masque booléen
Un masque booléen est une série de True/False ; seules les lignes à True sont gardées : df[df['Âge'] > 18]. Pour combiner :
| Opérateur | Sens | Exemple (pandas) |
|---|---|---|
& | ET | df[(df.age > 20) & (df.ville == 'Paris')] |
| | OU | df[(a) | (b)] |
~ | NON | df[~df.age.between(25, 35)] |
Chaque condition se met entre parenthèses (les opérateurs &, | sont plus prioritaires que > ou ==), et on n'utilise pas and/or sur une Series. Deux méthodes pratiques : .isin([...]) (la valeur est-elle dans cet ensemble ?) et .between(a, b) (valeurs entre deux bornes, incluses par défaut).
En Python pur, les mots and, or, not, in et les chaînages a <= x <= b font le même travail dans une compréhension : [l for l in df if l["age"] > 20 and l["ville"] in ("Paris", "Lyon")].
Vérifie que tu as compris
df[(df.age > 20) & (df.ville == 'Paris')] avec des parenthèses ?Vérifie que tu as compris
À toi de coder