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: 피연산자를 모양과 함께 브로드캐스트할 수 없습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다