Pandas : supprimez les colonnes si le nom contient une chaîne spécifique
Vous pouvez utiliser les méthodes suivantes pour supprimer des colonnes d’un DataFrame pandas dont le nom contient des chaînes spécifiques :
Méthode 1 : supprimer les colonnes si le nom contient une chaîne spécifique
df.drop(list(df.filter(regex='this_string')), axis=1, inplace=True)
Méthode 2 : supprimer les colonnes si le nom contient l’une des plusieurs chaînes spécifiques
df.drop(list(df.filter(regex='string1|string2|string3')), axis=1, inplace=True)
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team_name': ['A', 'B', 'C', 'D', 'E', 'F'], 'team_location': ['AU', 'AU', 'EU', 'EU', 'AU', 'EU'], 'player_name': ['Andy', 'Bob', 'Chad', 'Dan', 'Ed', 'Fran'], 'points': [22, 29, 35, 30, 18, 12]}) #view DataFrame print(df) team_name team_location player_name points 0 A AU Andy 22 1 B AU Bob 29 2 C EU Chad 35 3 D EU Dan 30 4 E AU Ed 18 5 F EU Fran 12
Exemple 1 : supprimer des colonnes si le nom contient une chaîne spécifique
Nous pouvons utiliser la syntaxe suivante pour supprimer toutes les colonnes du DataFrame qui contiennent « équipe » n’importe où dans le nom de la colonne :
#drop columns whose name contains 'team' df.drop(list(df.filter(regex='team')), axis=1, inplace=True) #view updated DataFrame print(df) player_name points 0 Andy 22 1 Bob 29 2 Chad 35 3 Dan 30 4 Ed 18 5 Fran 12
Notez que les deux colonnes contenant « équipe » dans le nom ont été supprimées du DataFrame.
Exemple 2 : supprimer des colonnes si le nom contient l’une des plusieurs chaînes spécifiques
Nous pouvons utiliser la syntaxe suivante pour supprimer toutes les colonnes du DataFrame qui contiennent « joueur » ou « points » n’importe où dans le nom de la colonne :
#drop columns whose name contains 'player' or 'points' df.drop(list(df.filter(regex='player|points')), axis=1, inplace=True) #view updated DataFrame print(df) team_name team_location 0 A AU 1 B AU 2 C EU 3 D EU 4 E AU 5 F EU
Notez que les deux colonnes contenant « joueur » ou « points » dans le nom ont été supprimées du DataFrame.
Remarque : Le | Le symbole dans les pandas est utilisé comme opérateur « OU ».
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment supprimer la première colonne dans Pandas
Comment supprimer les colonnes en double dans Pandas
Comment supprimer toutes les colonnes sauf certaines dans Pandas