Como corrigir no pandas: keyerror: “['label'] não encontrado no eixo”


Um erro que você pode encontrar ao usar pandas é:

 KeyError : "['Label'] not found in axis"

Este erro geralmente ocorre quando você tenta remover uma coluna de um DataFrames do pandas e se esquece de especificar axis=1 .

Por padrão, o argumento do eixo é definido como 0 , que se refere a linhas. Você precisa especificar axis=1 para dizer aos pandas para olharem as colunas.

O exemplo a seguir mostra como corrigir esse erro na prática.

Como reproduzir o erro

Suponha que temos o seguinte DataFrame do pandas:

 import pandas as pd

#createDataFrame
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 to 5 11
1 to 7 8
2 to 7 10
3 to 9 6
4 B 12 6
5 B 9 5
6 B 9 9
7 B 4 12

Agora suponha que tentamos remover a coluna “pontos” do DataFrame:

 #attempt to drop "points" column
df_new = df. drop (' points ')

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

Por padrão, a função drop() usa axis=0 , que se refere às linhas do DataFrame.

Como não existe um nome de linha chamado “pontos”, recebemos um erro.

Como corrigir o erro

Para dizer aos pandas para olharem as colunas, precisamos especificar axis=1 como segue:

 #drop "points" column
df_new = df. drop (' points ', axis= 1 )

#view updated DataFrame
print (df)

	team assists
0 to 5
1 to 7
2 to 7
3 to 9
4 B 12
5 B 9
6 B 9
7 B 4

Observe que a coluna “pontos” foi removida do DataFrame e não estamos recebendo nenhum erro.

Isso ocorre porque usamos axis=1 , então o pandas sabia que deveria procurar “pontos” nos nomes das colunas ao decidir quais valores remover do DataFrame.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *