Pandas : comment sélectionner des colonnes contenant une chaîne spécifique
Vous pouvez utiliser les méthodes suivantes pour sélectionner les colonnes contenant une chaîne particulière dans un DataFrame pandas :
Méthode 1 : sélectionner les colonnes contenant une chaîne spécifique
df.filter(regex='string1')
Méthode 2 : sélectionner les colonnes contenant une parmi plusieurs chaînes
df.filter(regex='string1|string2|string3')
Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec le DataFrame pandas suivant :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'mavs': [10, 12, 14, 15, 19, 22, 27],
'cavs': [18, 22, 19, 14, 14, 11, 20],
'hornets': [5, 7, 7, 9, 12, 9, 14],
'spurs': [10, 12, 14, 13, 13, 19, 22],
'nets': [10, 14, 25, 22, 25, 17, 12]})
#view DataFrame
print(df)
mavs cavs hornets spurs nets
0 10 18 5 10 10
1 12 22 7 12 14
2 14 19 7 14 25
3 15 14 9 13 22
4 19 14 12 13 25
5 22 11 9 19 17
6 27 20 14 22 12
Exemple 1 : sélectionner des colonnes contenant une chaîne spécifique
Le code suivant montre comment utiliser la fonction filter() pour sélectionner uniquement les colonnes qui contiennent la chaîne « avs » quelque part dans leur nom :
#select columns that contain 'avs' in the name
df2 = df.filter(regex='avs')
#view DataFrame
print(df2)
mavs cavs
0 10 18
1 12 22
2 14 19
3 15 14
4 19 14
5 22 11
6 27 20
Seules les colonnes dont le nom contient « avs » sont renvoyées.
Dans ce cas, « mavs » et « cavs » sont les seules colonnes renvoyées.
Exemple 2 : sélectionner des colonnes contenant une chaîne parmi plusieurs
Le code suivant montre comment utiliser la fonction filter() pour sélectionner uniquement les colonnes qui contiennent « avs » ou « ets » quelque part dans leur nom :
#select columns that contain 'avs' in the name
df2 = df.filter(regex='avs|ets')
#view DataFrame
print(df2)
mavs cavs hornets nets
0 10 18 5 10
1 12 22 7 14
2 14 19 7 25
3 15 14 9 22
4 19 14 12 25
5 22 11 9 17
6 27 20 14 12
Seules les colonnes dont le nom contient « avs » ou « ets » sont renvoyées.
Notez que la barre verticale ( | ) est l’opérateur « OU » dans les pandas.
N’hésitez pas à enchaîner autant de ces opérateurs « OU » que vous le souhaitez pour sélectionner des colonnes contenant l’une des nombreuses chaînes différentes.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Pandas : Comment déplacer une colonne devant le DataFrame
Pandas : comment vérifier si la colonne contient une chaîne
Pandas : Comment ajouter une colonne vide à DataFrame (3 exemples)