Comment réparer KeyError dans Pandas (avec exemple)



Une erreur que vous pouvez rencontrer lors de l’utilisation de pandas est :

KeyError: 'column_name'

Cette erreur se produit lorsque vous tentez d’accéder à une colonne d’un DataFrame pandas qui n’existe pas.

Généralement, cette erreur se produit lorsque vous orthographiez simplement mal un nom de colonne ou incluez un espace accidentel avant ou après le nom de colonne.

L’exemple suivant montre comment corriger cette erreur dans la pratique.

Comment reproduire l’erreur

Supposons que nous créions le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
df

points	assists	rebounds
0	25	5	11
1	12	7	8
2	15	7	10
3	14	9	6
4	19	12	6
5	23	9	5
6	25	9	9
7	29	4	12

Supposons ensuite que nous essayions d’imprimer les valeurs dans une colonne appelée « point » :

#attempt to print values in 'point' column
print(df['point'])

KeyError                                  Traceback (most recent call last)
/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   3360             try:
-> 3361                 return self._engine.get_loc(casted_key)
   3362             except KeyError as err:

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

/srv/conda/envs/notebook/lib/python3.7/site-packages/pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'point'

Puisqu’il n’y a pas de colonne « point » dans notre DataFrame, nous recevons un KeyError .

Comment réparer l’erreur

La façon de corriger cette erreur consiste simplement à nous assurer que nous épelons correctement le nom de la colonne.

Si nous ne sommes pas sûrs de tous les noms de colonnes dans le DataFrame, nous pouvons utiliser la syntaxe suivante pour imprimer chaque nom de colonne :

#display all column names of DataFrame
print(df.columns.tolist())

['points', 'assists', 'rebounds']

Nous pouvons voir qu’il y a une colonne appelée « points », nous pouvons donc corriger notre erreur en épelant correctement le nom de la colonne :

#print values in 'points' column
print(df['points'])

0    25
1    12
2    15
3    14
4    19
5    23
6    25
7    29
Name: points, dtype: int64

Nous évitons une erreur car nous avons correctement orthographié le nom de la colonne.

Ressources additionnelles

Les didacticiels suivants expliquent comment corriger d’autres erreurs courantes en Python :

Comment réparer : les colonnes se chevauchent mais aucun suffixe n’est spécifié
Comment réparer : l’objet ‘numpy.ndarray’ n’a pas d’attribut ‘append’
Comment réparer : si vous utilisez toutes les valeurs scalaires, vous devez transmettre un index

Ajouter un commentaire

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