Pandas : Comment supprimer une colonne si elle existe



Vous pouvez utiliser la syntaxe de base suivante pour supprimer une ou plusieurs colonnes dans un DataFrame pandas si elles existent :

df = df.drop(['column1', 'column2'], axis=1, errors='ignore')

Remarque : Si vous n’utilisez pas l’argument error=’ignore’ , vous recevrez une erreur si vous tentez de supprimer une colonne qui n’existe pas.

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : supprimer la colonne si elle existe dans Pandas

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
                   'points': [18, 22, 19, 14, 14, 11],
                   'assists': [5, 7, 7, 9, 12, 9],
                   'minutes': [10.1, 12.0, 9.0, 8.0, 8.4, 7.5],
                   'all_star': [True, False, False, True, True, True]})

#view DataFrame
print(df)

  team  points  assists  minutes  all_star
0    A      18        5     10.1      True
1    B      22        7     12.0     False
2    C      19        7      9.0     False
3    D      14        9      8.0      True
4    E      14       12      8.4      True
5    F      11        9      7.5      True

Supposons maintenant que nous essayions de supprimer les colonnes portant les noms minutes_played et points :

#drop minutes_played and points columns
df = df.drop(['minutes_played', 'points'], axis=1)

KeyError: "['minutes_played', 'points'] not found in axis"

Nous recevons une erreur car la colonne minutes_played n’existe pas en tant que nom de colonne dans le DataFrame.

Au lieu de cela, nous devons utiliser la fonction drop() avec l’argument erreurs=’ignore’ :

#drop minutes_played and points columns
df = df.drop(['minutes_played', 'points'], axis=1, errors='ignore')

#view updated DataFrame
print(df)

  team  assists  minutes  all_star
0    A        5     10.1      True
1    B        7     12.0     False
2    C        7      9.0     False
3    D        9      8.0      True
4    E       12      8.4      True
5    F        9      7.5      True

Notez que la colonne de points a été supprimée du DataFrame.

Notez également que nous ne recevons aucune erreur même si nous avons tenté de supprimer une colonne appelée minutes_played , qui n’existe pas.

Ressources additionnelles

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

Pandas : Comment supprimer des colonnes sans nom
Pandas : comment supprimer toutes les colonnes sauf certaines spécifiques
Pandas : comment supprimer toutes les lignes sauf certaines

Ajouter un commentaire

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