Skip to content

Pandas에서 키 오류(Key Errors) 해결하는 방법: 자세한 가이드

Updated on

데이터 분석가나 데이터 과학자라면, 아마도 Pandas KeyError를 경험해본 적이 있을 것입니다. 이 오류는 매우 흔하지만, 특히 짜증나는 경우가 있습니다. 그러나 몇 가지 직관성 있고 올바른 도구를 사용하면 빠르게 진단하고 문제를 해결할 수 있습니다. 이 글은 Pandas에서 키 오류를 해결하는 자세한 가이드를 제공합니다.

파이썬에서 빠르게 데이터 시각화를 하고 싶나요?

PyGWalker는 Jupyter Notebook 기반 환경에서 데이터 분석과 시각화 작업을 빠르게 할 수 있는 오픈소스 프로젝트입니다.

PyGWalker (opens in a new tab)는 Pandas 데이터프레임(또는 Polars 데이터프레임)을 시각적 UI로 변환하여 변수를 드래그 앤 드롭하여 손쉽게 그래프를 생성할 수 있습니다. 다음 코드를 사용할 수 있습니다.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

이제 온라인 노트북에서 PyGWalker를 실행할 수 있습니다:

그리고, 깃허브에서 ⭐️를 눌러주세요!

카글 노트북에서 PyGWalker 실행하기 (opens in a new tab)구글 코랩에서 PyGWalker 실행하기 (opens in a new tab)깃허브에서 PyGWalker에 ⭐️ 부여하기 (opens in a new tab)
카글 노트북에서 PyGWalker 실행하기 (opens in a new tab)구글 코랩에서 PyGWalker 실행하기 (opens in a new tab)깃허브에서 PyGWalker에 ⭐️ 부여하기 (opens in a new tab)

Pandas KeyError 이해하기

이러한 오류를 해결하기 전에 Pandas KeyError가 무엇인지 먼저 이해해야 합니다.

Pandas에서 'key'는 데이터프레임의 열 이름을 뜻합니다. KeyError는 Pandas가 접근하려는 열 이름을 찾을 수 없는 경우 발생합니다. 이는 해당 열 이름이 존재하지 않거나 사용하는 이름에 오타가 있는 경우가 있습니다. 이를 이해하는 것은 키 오류를 해결하기 위한 첫 번째 단계입니다.

방법 1: 열 레이블이 존재하는지 확인

KeyError를 피하는 가장 간단한 방법은 데이터프레임에 열 레이블이 존재하는지 확인하는 것입니다. 이 작업은 데이터에 대한 이해도와 주의 깊은 코딩이 필요합니다.

다음은 KeyError를 만날 수있는 간단한 예입니다.

import pandas as pd
 
data = {'Name': ['John', 'Anna', 'Peter'],
        'Age': [28, 24, 22]}
df = pd.DataFrame(data)
print(df['Names'])  # 이 코드는 'Name'이라는 올바른 열 이름을 사용해야 하기 때문에 KeyError를 발생시킵니다.
 
# 만약 어떤 열이 존재하는지 확실하지 않다면, 다음의 코드로 확인할 수 있습니다.
if 'Names' in df.columns:
    print(df['Names'])
else:
    print("해당 열이 존재하지 않습니다.")
 
## 방법 2: get() 메소드 사용하기
만약 코드를 멈추지 않고도 오류를 처리하고 싶다면, get() 함수를 사용할 수 있습니다. 해당 함수는 열이 존재하면 해당 열을 반환하고, 그렇지 않으면 기본 값을 반환합니다. 다음과 같이 사용할 수 있습니다.
```python
print(df.get('Names', '열을 찾을 수 없습니다.'))

고급 오류 처리: try, except 사용하기

위에서 설명한 방법들도 효율적이지만, 때로는 더 견고한 오류 처리 방법이 필요할 때도 있습니다. 이때 파이썬의 try와 except를 사용할 수 있습니다. 특정 열에 접근하려고 시도하고, KeyError가 발생하면 except 블록에서 처리할 수 있습니다.

다음은 이러한 예시입니다.

try:
    print(df['Names'])
except KeyError:
    print('해당 열이 존재하지 않습니다.')

하지만, 에러 타입을 명시하지 않고 예외처리를 하는 것은 지양해야 합니다. 이러한 경우 예상치 못한 에러가 발생할 수 있습니다.

결론

Pandas에서 KeyError는 흔히 발생하지만, 올바른 접근 방법을 채택함으로써 이러한 오류를 효율적으로 방지하고 해결할 수 있습니다. DataFrame에서 열 라벨이 존재하는지 항상 확인하고, 안전한 열 접근을 위해 get() 함수를 사용하며, 견고한 오류 처리를 위해 try/except를 활용하세요.