Как исправить в pandas: keyerror: «['label'] не найден на оси”


Ошибка, с которой вы можете столкнуться при использовании панд:

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

Эта ошибка обычно возникает, когда вы пытаетесь удалить столбец из DataFrames pandas и забываете указать axis=1 .

По умолчанию аргумент оси имеет значение 0 , что относится к линиям. Вам нужно указать axis=1 , чтобы панды смотрели на столбцы.

В следующем примере показано, как исправить эту ошибку на практике.

Как воспроизвести ошибку

Предположим, у нас есть следующий DataFrame 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

Теперь предположим, что мы пытаемся удалить столбец «точки» из DataFrame:

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

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

По умолчанию функция drop() использует axis=0 , что относится к строкам DataFrame.

Поскольку имя строки под названием «точки» отсутствует, мы получаем ошибку.

Как исправить ошибку

Чтобы указать пандам вместо этого просматривать столбцы, нам нужно указать axis=1 следующим образом:

 #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

Обратите внимание, что столбец «точки» был удален из DataFrame, и мы не получаем никаких ошибок.

Это связано с тем, что мы использовали axis=1 , поэтому панды знали, что нужно смотреть на имена столбцов на наличие «точек», решая, какие значения удалить из DataFrame.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить ошибку KeyError в Pandas
Как исправить: ValueError: невозможно преобразовать число с плавающей запятой NaN в int.
Как исправить: ValueError: операнды не могут быть переданы с помощью фигур.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *