Як виправити в pandas: keyerror: “['label'] not found in axis”


Помилка, з якою ви можете зіткнутися під час використання панд:

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

Ця помилка зазвичай виникає, коли ви намагаєтеся видалити стовпець із pandas DataFrames і забуваєте вказати axis=1 .

За замовчуванням аргумент осі має значення 0 , що стосується ліній. Вам потрібно вказати axis=1 , щоб наказати пандам дивитися на стовпці.

У наступному прикладі показано, як виправити цю помилку на практиці.

Як відтворити помилку

Припустімо, що у нас є наступні pandas DataFrame:

 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

Тепер припустімо, що ми спробуємо видалити стовпець «points» з 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

Зауважте, що стовпець “points” було видалено з DataFrame, і ми не отримуємо жодних помилок.

Це тому, що ми використовували axis=1 , тому pandas знали, що потрібно дивитися на назви стовпців для «точок», коли вирішували, які значення видалити з DataFrame.

Додаткові ресурси

У наступних посібниках пояснюється, як виправити інші типові помилки в Python:

Як виправити KeyError у Pandas
Як виправити: ValueError: неможливо перетворити float NaN на int
Як виправити: ValueError: операнди не можна транслювати з фігурами

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *