Hey Tech

[Python] 에러메시지 분석: "UserWarning: Boolean Series key will be reindexed to match DataFrame index." 본문

SW 개발/Python

[Python] 에러메시지 분석: "UserWarning: Boolean Series key will be reindexed to match DataFrame index."

Tony Park (토니) 2022. 2. 7. 08:55
728x90
반응형

⁉️ 에러 상황

아래와 같이 데이터프레임에서 2가지 조건을 만족하는 데이터를 필터링했더니

코드는 잘 돌아가는데 에러 메시지가 출력되었습니다.

  • 2018 <= date_year(리뷰 등록연도)
  • 5<= review_token_number(리뷰 데이터의 토큰 개수)
dataset_selected = dataset[2018 <= dataset['date_year']][5<=dataset['review_token_number']]['review_raw']

📝 에러 메시지

<ipython-input-17-44462bb117be>:2: UserWarning: Boolean Series key will be reindexed to match DataFrame index.
  dataset_selected = dataset[2018 <= dataset['date_year']][5<=dataset['review_token_number']]['review_raw']

👨‍💻  원인

에러 메시지를 해석하자면, 데이터프레임의 length가 변형되어 reindexing이 자동으로 발생했다는 의미입니다.

첫 번째 조건에서 length가 변형되었기 때문에 2번째 조건이 제대로 필터링되지 않을 수 있습니다.

코드가 정상적으로 수행되더라도 이러한 이유로 위와 같은 방식은 사용하지 않는 게 좋습니다.

💡 해결방법

이를 해결하기 위해서는 크게 2가지 방법이 있습니다.

✅ 솔루션1: & 연산 활용하기

dataset_selected = dataset[2018 <= dataset['date_year'] & 5<=dataset['review_token_number']]['review_raw']

✅ 솔루션1: Step by Step

2번에 나누어 필터링할 수 있습니다.

dataset_selected1 = dataset[2018 <= dataset['date_year']]
dataset_selected2 = dataset_selected1[5<=dataset_selected1['review_token_number']]['review_raw']

포스팅 내용에 오류가 있다면 아래에 댓글 남겨주세요!

그럼 오늘도 즐거운 하루 보내시길 바랍니다 :)

고맙습니다.

728x90
반응형