Pandas에서 수정하는 방법: keyerror: “['label']을 축에서 찾을 수 없습니다”
pandas를 사용할 때 발생할 수 있는 오류는 다음과 같습니다.
KeyError : "['Label'] not found in axis"
이 오류는 일반적으로 pandas DataFrames에서 열을 제거하려고 하고 axis=1 지정을 잊었을 때 발생합니다.
기본적으로 축 인수는 선을 참조하는 0 으로 설정됩니다. 팬더에게 열을 보도록 지시하려면 axis=1을 지정해야 합니다.
다음 예에서는 실제로 이 오류를 수정하는 방법을 보여줍니다.
오류를 재현하는 방법
다음과 같은 팬더 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
이제 DataFrame에서 “points” 열을 제거하려고 한다고 가정합니다.
#attempt to drop "points" column
df_new = df. drop (' points ')
KeyError : "['points'] not found in axis"
기본적으로 drop() 함수는 DataFrame의 행을 참조하는 axis=0 을 사용합니다.
“points”라는 행 이름이 없으므로 오류가 발생합니다.
오류를 수정하는 방법
팬더에게 대신 열을 보도록 지시하려면 다음과 같이 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의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
Pandas에서 KeyError를 수정하는 방법
해결 방법: ValueError: float NaN을 int로 변환할 수 없습니다.
해결 방법: ValueError: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.