Одна ошибка, с которой вы можете столкнуться при использовании 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: операнды не могли транслироваться вместе с фигурами