Comment découper des colonnes dans Pandas DataFrame (avec exemples)
Vous pouvez utiliser les méthodes suivantes pour découper les colonnes dans un DataFrame pandas :
Méthode 1 : découper par noms de colonnes spécifiques
df_new = df.loc[:, ['col1', 'col4']]
Méthode 2 : découper par noms de colonnes dans la plage
df_new = df.loc[:, 'col1':'col4']
Méthode 3 : couper par positions d’index de colonne spécifiques
df_new = df.iloc[:, [0, 3]]
Méthode 4 : tranche par plage de positions d’index de colonne
df_new = df.iloc[:, 0:3]
Notez la différence subtile entre loc et iloc dans chacune de ces méthodes :
- loc sélectionne les lignes et les colonnes avec des étiquettes spécifiques
- iloc sélectionne les lignes et les colonnes à des positions entières spécifiques
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame with six columns df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, 22, 19, 14, 14, 11, 20, 28], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12], 'steals': [4, 3, 3, 2, 5, 4, 3, 8], 'blocks': [1, 0, 0, 3, 2, 2, 1, 5]}) #view DataFrame print(df) team points assists rebounds steals blocks 0 A 18 5 11 4 1 1 B 22 7 8 3 0 2 C 19 7 10 3 0 3 D 14 9 6 2 3 4 E 14 12 6 5 2 5 F 11 9 5 4 2 6 G 20 9 9 3 1 7 H 28 4 12 8 5
Exemple 1 : couper par noms de colonnes spécifiques
Nous pouvons utiliser la syntaxe suivante pour créer un nouveau DataFrame qui contient uniquement les colonnes team et rebonds :
#slice columns team and rebounds
df_new = df.loc[:, ['team', 'rebounds']]
#view new DataFrame
print(df_new)
team rebounds
0 A 11
1 B 8
2 C 10
3 D 6
4 E 6
5 F 5
6 G 9
7 H 12
Exemple 2 : couper par noms de colonnes dans la plage
Nous pouvons utiliser la syntaxe suivante pour créer un nouveau DataFrame qui contient uniquement les colonnes comprises entre team et rebonds :
#slice columns between team and rebounds
df_new = df.loc[:, 'team':'rebounds']
#view new DataFrame
print(df_new)
team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7 H 28 4 12
Exemple 3 : couper par positions d’index de colonne spécifiques
Nous pouvons utiliser la syntaxe suivante pour créer un nouveau DataFrame qui contient uniquement les colonnes aux positions d’index 0 et 3 :
#slice columns in index positions 0 and 3
df_new = df.iloc[:, [0, 3]]
#view new DataFrame
print(df_new)
team rebounds
0 A 11
1 B 8
2 C 10
3 D 6
4 E 6
5 F 5
6 G 9
7 H 12
Exemple 4 : Plage de positions d’index de tranche par colonne
Nous pouvons utiliser la syntaxe suivante pour créer un nouveau DataFrame qui contient uniquement les colonnes dans la plage de positions d’index entre 0 et 3 :
#slice columns in index position range between 0 and 3
df_new = df.iloc[:, 0:3]
#view new DataFrame
print(df_new)
team points assists
0 A 18 5
1 B 22 7
2 C 19 7
3 D 14 9
4 E 14 12
5 F 11 9
6 G 20 9
7 H 28 4
Remarque : lors de l’utilisation d’une plage de positions d’index, la dernière position d’index de la plage ne sera pas incluse. Par exemple, la colonne des rebonds en position d’index 3 n’est pas incluse dans le nouveau DataFrame.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment supprimer la première ligne dans Pandas DataFrame
Comment supprimer la première colonne dans Pandas DataFrame
Comment supprimer les colonnes en double dans Pandas