Exercice 63 / 100

Pandas — Sélection

Sélectionne des lignes et colonnes avec loc et iloc

Pour accéder à des sous-ensembles d'un DataFrame, on a plusieurs syntaxes. Les deux outils principaux sont .loc et .iloc.

Sélection de colonnes

df['age']
une colonne → Series
df[['nom', 'age']] plusieurs colonnes → DataFrame (DOUBLES CROCHETS) df.age équivalent à df['age'] (à éviter si nom de col ambigu)

.loc : sélection par LABEL

Syntaxe : df.loc[lignes, colonnes]

df.loc[0] ligne avec label 0 df.loc[0, 'nom'] cellule (ligne 0, colonne 'nom') df.loc[:, 'nom'] toute la colonne 'nom' df.loc[0:2] lignes 0, 1, 2 (INCLUSIF !) df.loc[0:2, ['nom','age']] df.loc[df['age'] > 25] filtrage par condition

Avec .loc, la fin est incluse (différent du slicing Python classique).

.iloc : sélection par POSITION

Syntaxe : df.iloc[indices_lignes, indices_colonnes]

df.iloc[0] première ligne (position 0) df.iloc[0, 1] cellule (ligne 0, colonne 1) df.iloc[0:2] lignes 0 et 1 (EXCLUSIF, comme Python) df.iloc[-1] dernière ligne df.iloc[:, [0, 2]] colonnes 0 et 2

Filtrage booléen

df[df['age'] > 25] # une condition df[(df['age'] > 25) & (df['ville'] == 'Paris')] # deux conditions df[df['ville'].isin(['Paris', 'Lyon'])] # appartenance df.loc[df['age'] > 25, ['nom', 'score']] # filtre + colonnes
Chaque condition désigne un ensemble de lignes : & garde celles qui sont dans les deux à la fois, | garde celles qui sont dans l'un ou dans l'autre

Exemple complet

df = pd.DataFrame({ 'nom': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35], 'score': [85, 92, 78] })
df['age'] # colonne age df.iloc[0] # première ligne df[df['age'] > 25] # filtre df.loc[1, 'nom'] # 'Bob'

Règle simple : utilise .loc avec des noms (et conditions), .iloc avec des indices entiers. Les deux ensemble couvrent tous les besoins.

exercise.py

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