Comment réparer dans Pandas : KeyError : “[‘Étiquette’] introuvable dans l’axe” ;
Une erreur que vous pouvez rencontrer lors de l’utilisation de pandas est :
KeyError: "['Label'] not found in axis"
Cette erreur se produit généralement lorsque vous essayez de supprimer une colonne d’un DataFrames pandas et oubliez de spécifier axis=1 .
Par défaut, l’argument de l’axe est défini sur 0 , ce qui fait référence aux lignes. Vous devez spécifier axis=1 pour dire aux pandas de regarder les colonnes.
L’exemple suivant montre comment corriger cette erreur dans la pratique.
Comment reproduire l’erreur
Supposons que nous ayons le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'points': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print(df) team assists points 0 A 5 11 1 A 7 8 2 A 7 10 3 A 9 6 4 B 12 6 5 B 9 5 6 B 9 9 7 B 4 12
Supposons maintenant que nous essayions de supprimer la colonne « points » du DataFrame :
#attempt to drop "points" column
df_new = df.drop('points')
KeyError: "['points'] not found in axis"
Par défaut, la fonction drop() utilise axis=0 , qui fait référence aux lignes du DataFrame.
Puisqu’il n’y a pas de nom de ligne appelé « points », nous recevons une erreur.
Comment réparer l’erreur
Pour dire aux pandas de regarder les colonnes à la place, nous devons spécifier axis=1 comme suit :
#drop "points" column
df_new = df.drop('points', axis=1)
#view updated DataFrame
print(df)
team assists
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 la colonne « points » a été supprimée du DataFrame et nous ne recevons aucune erreur.
C’est parce que nous avons utilisé axis=1 , donc les pandas savaient qu’il fallait regarder les noms de colonnes pour les « points » lorsqu’ils décidaient quelles valeurs supprimer du DataFrame.
Ressources additionnelles
Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :
Comment réparer KeyError dans Pandas
Comment réparer : ValueError : impossible de convertir le float NaN en entier
Comment réparer : ValueError : les opérandes n’ont pas pu être diffusés avec les formes