Como corrigir keyerror em pandas (com exemplo)
Um erro que você pode encontrar ao usar pandas é:
KeyError : 'column_name'
Este erro ocorre quando você tenta acessar uma coluna de um DataFrame do pandas que não existe.
Normalmente, esse erro ocorre quando você simplesmente digita incorretamente o nome de uma coluna ou inclui um espaço acidental antes ou depois do nome da coluna.
O exemplo a seguir mostra como corrigir esse erro na prática.
Como reproduzir o erro
Suponha que criemos o seguinte DataFrame do pandas:
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
A seguir, suponha que tentamos imprimir os valores em uma coluna chamada “ponto”:
#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'
Como não há coluna “ponto” em nosso DataFrame, recebemos um KeyError .
Como corrigir o erro
A maneira de corrigir esse erro é simplesmente certificar-se de que escrevemos o nome da coluna corretamente.
Se não tivermos certeza de todos os nomes de colunas no DataFrame, podemos usar a seguinte sintaxe para imprimir o nome de cada coluna:
#display all column names of DataFrame print ( df.columns.tolist () ) ['points', 'assists', 'rebounds']
Podemos ver que existe uma coluna chamada “pontos”, então podemos corrigir nosso erro escrevendo o nome da coluna corretamente:
#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
Evitamos um erro porque escrevemos o nome da coluna corretamente.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:
Como corrigir: as colunas se sobrepõem, mas nenhum sufixo é especificado
Como corrigir: o objeto ‘numpy.ndarray’ não possui um atributo ‘append’
Como corrigir: se você usar todos os valores escalares, precisará passar um índice