Come correggere l'errore chiave in panda (con esempio)


Un errore che potresti riscontrare quando usi i panda è:

 KeyError : 'column_name'

Questo errore si verifica quando si tenta di accedere a una colonna di un DataFrame panda che non esiste.

In genere, questo errore si verifica quando si scrive semplicemente in modo errato il nome di una colonna o si include uno spazio accidentale prima o dopo il nome della colonna.

L’esempio seguente mostra come correggere questo errore nella pratica.

Come riprodurre l’errore

Supponiamo di creare il seguente DataFrame panda:

 import pandas as pd

#createDataFrame
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

Successivamente, supponiamo di provare a stampare i valori in una colonna chiamata “punto”:

 #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 : 'dot'

Poiché non è presente alcuna colonna “punto” nel nostro DataFrame, riceviamo un KeyError .

Come correggere l’errore

Il modo per correggere questo errore è semplicemente assicurarsi di scrivere correttamente il nome della colonna.

Se non siamo sicuri di tutti i nomi delle colonne nel DataFrame, possiamo utilizzare la seguente sintassi per stampare il nome di ogni colonna:

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

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

Possiamo vedere che esiste una colonna chiamata “punti”, quindi possiamo correggere il nostro errore scrivendo correttamente il nome della colonna:

 #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

Evitiamo un errore perché abbiamo scritto correttamente il nome della colonna.

Risorse addizionali

I seguenti tutorial spiegano come correggere altri errori comuni in Python:

Come risolvere il problema: le colonne si sovrappongono ma non è specificato alcun suffisso
Come risolvere il problema: l’oggetto “numpy.ndarray” non ha un attributo “append”.
Come risolvere il problema: se utilizzi tutti i valori scalari, devi passare un indice

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *