Как исправить в 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: операнды не могут быть переданы с помощью фигур.