Pandas : comment sélectionner des colonnes en fonction d’une correspondance partielle



Vous pouvez utiliser les méthodes suivantes pour sélectionner des colonnes dans un DataFrame pandas en fonction d’une correspondance partielle :

Méthode 1 : sélectionner des colonnes en fonction d’une correspondance partielle

#select columns that contain 'team'
df.loc[:, df.columns.str.contains('team')]

Méthode 2 : sélectionner des colonnes en fonction de plusieurs correspondances partielles

#select columns that contain 'team' or 'rebounds'
df.loc[:, df.columns.str.contains('team|rebounds')] 

Les exemples suivants montrent comment utiliser chaque méthode avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team_name': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'team_points': [5, 7, 7, 9, 12, 9, 9, 4],
                   'assists': [11, 8, 10, 6, 6, 5, 9, 12],
                   'rebounds': [6, 7, 7, 6, 10, 12, 10, 9]})

#view DataFrame
print(df)

  team_name  team_points  assists  rebounds
0         A            5       11         6
1         A            7        8         7
2         A            7       10         7
3         A            9        6         6
4         B           12        6        10
5         B            9        5        12
6         B            9        9        10
7         B            4       12         9

Exemple 1 : sélectionner des colonnes en fonction d’une correspondance partielle

Le code suivant montre comment sélectionner toutes les colonnes du DataFrame pandas qui contiennent « équipe » dans le nom de la colonne :

#select columns that contain 'team'
df_team_cols = df.loc[:, df.columns.str.contains('team')]

#view results
print(df_team_cols)

  team_name  team_points
0         A            5
1         A            7
2         A            7
3         A            9
4         B           12
5         B            9
6         B            9
7         B            4

Notez que les deux colonnes contenant « équipe » dans le nom sont renvoyées.

Exemple 2 : sélectionner des colonnes en fonction de plusieurs correspondances partielles

Le code suivant montre comment sélectionner toutes les colonnes du DataFrame pandas qui contiennent « équipe » ou « rebonds » dans le nom de la colonne :

#select columns that contain 'team' or 'rebounds'
df_team_rebs = df.loc[:, df.columns.str.contains('team|rebounds')]

#view results
print(df_team_rebs)

  team_name  team_points  rebounds
0         A            5         6
1         A            7         7
2         A            7         7
3         A            9         6
4         B           12        10
5         B            9        12
6         B            9        10
7         B            4         9

Toutes les colonnes dont le nom contient « équipe » ou « rebonds » sont renvoyées.

Remarque : Le | l’opérateur représente « OU » dans les pandas.

N’hésitez pas à utiliser autant de ces opérateurs que vous le souhaitez pour rechercher autant de correspondances de chaînes partielles que vous le souhaitez.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment sélectionner des colonnes par nom dans Pandas
Comment sélectionner des colonnes par index dans Pandas
Comment sélectionner des colonnes par type de données dans Pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *