반응형
💬 KeyError: 'column_name'
데이터 다루다 보면 꼭 한 번은 마주치는 이 에러.
왜 발생하고, 어떻게 예방할 수 있을까요?
❗ 에러 메시지 예시
KeyError: 'price'
→ 없는 key(또는 column)를 찾으려 해서 발생한 오류입니다.
🔍 원인: 딕셔너리나 DataFrame에서 없는 키를 호출했을 때
my_dict = {'a': 1, 'b': 2}
print(my_dict['c']) # ❌ KeyError 발생
또는 Pandas에서:
import pandas as pd
df = pd.DataFrame({
'name': ['a', 'b'],
'value': [1, 2]
})
df['price'] # ❌ 'price'라는 컬럼이 없음
🧪 자주 발생하는 사례
✅ 오타
df['Price'] # 대소문자 구분 때문에 오류 발생
✅ drop(), groupby(), merge() 등에서 존재하지 않는 컬럼 지정
df.drop(columns=['price']) # 없는 컬럼이면 KeyError
🛠️ 해결 방법
✔ 컬럼 존재 여부 확인 후 사용
if 'price' in df.columns:
df['price']
else:
print("컬럼이 없습니다.")
✔ get() 사용 (딕셔너리에서)
value = my_dict.get('c', 0) # 없으면 기본값 0
✔ try-except로 에러 방지
try:
df['price']
except KeyError:
print("해당 컬럼이 존재하지 않습니다.")
✅ 마무리 정리
- KeyError는 존재하지 않는 키나 컬럼명을 호출할 때 발생합니다.
- 오타, 대소문자 구분, 컬럼 삭제 후 호출 등의 실수가 원인일 수 있습니다.
- 호출 전에 in으로 존재 여부를 체크하거나, get()을 사용해 안전하게 처리하세요.
📘 다음에 보면 좋은 글
🔹 [에러 해결] ValueError: could not convert string to float – 왜 이런 에러가 날까?
반응형
'IT' 카테고리의 다른 글
[에러 해결] IndexError – 인덱스를 벗어났다고요? (0) | 2025.06.20 |
---|---|
[에러 해결] TypeError: 'int' object is not subscriptable – 리스트처럼 쓰면 안 돼요! (0) | 2025.06.19 |
[에러 해결] ValueError: could not convert string to float – 왜 이런 에러가 날까? (0) | 2025.06.11 |
tmux란? 💻 (2) | 2024.01.27 |
FastAPI란 무엇일까? 💻 (0) | 2024.01.26 |