이전 글에서는 df.query()
을 사용해 조건에 맞는 데이터프레임을 출력하고자 할 때 df['컬럼'].values에 \xa0이 포함되어 원하는 결과가 출력되지 않을 때의 해결방법에 대해 포스팅했다. df.query()
의 주의사항은 한 가지 더 있는데 이것이 오늘 포스팅할 주제이다.
죄종별로 나뉘어 있는 '죄종별(1)' 컬럼에서 '강력범죄'만 추출하고 싶다. df.query("죄종별(1) == '강력범죄'")
을 실행했더니 [사진 1-2]처럼 오류가 발생했다.
데이터프레임 | df.query() |
---|---|
![]() | ![]() |
[사진 1-2]의 맨 아래를 보면 "'죄종별'은 지원하지 않는 함수이다"라고 오류 발생 원인이 적혀있다.
컬럼명에 괄호가 있었기 때문에 파이썬은 '죄종별(1)'을 컬럼명이 아닌 죄종별() 함수로 인식한 것이다.
문제를 해결하는 방법은 간단하다. 컬럼명을 재설정하면 된다. 컬럼명을 변경하는 방법은 여러가지가 있지만 특정 컬럼명을 변경할 때는 rename()
을 활용하면 된다.
df.query()
출력컬럼명을 수정하니 죄종별이 강력범죄인 데이터프레임만 출력되었다!
이번 포스팅을 한 줄로 정리하자면 오류가 발생할 시 당황하지 말고 오류 메시지를 확인하면 답이 나온다! 오류 메시지를 확인하면 생각보다 별거 아닌 오류들이 있다. [사진 1-2]를 보면 오류 메시지는 엄청 길지만 마지막 ValueError만 보면 굉장히 쉬운 문제라는 것을 알 수 있다. 오류 원인을 따라 하나씩 해결하면 원하는 것을 얻을 수 있을 것이다!