Как исправить в Pandas: KeyError: «['Label'] не найден на оси»


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

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

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

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

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

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

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
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 A 5 11
1 A 7 8
2 A 7 10
3 A 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.

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

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

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

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

#view updated DataFrame
print(df)

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

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

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

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.