[파이썬 오류] ValueError : cannot mask with non-boolean array containing na / nan values

2023. 4. 7. 00:01코딩/파이썬

def get_info(old_code, new_code):
    tmp = obj.origin[obj.origin['코드(관리번호)'].str.contains(old_code, case=False)]
        ...생략...

위와 같이 데이터프레임에서 특정 값이 포함된 행을 가져오려 했을 때 발생했다.
이 오류는 컬럼에서 boolean 형식으로 나타낼 수 없는 값이 있을 때 생기는 오류다. 보통 NaN값이 이에 해당되는데, contains() 메서드에서 na=False 로 지정하여 NaN 값을 False로 처리하도록 지정해주면 된다.

아래는 수정한 코드이다.

def get_info(old_code, new_code):
    tmp = obj.origin[obj.origin['코드(관리번호)'].str.contains(old_code, case=False, na=False)]
        ...생략...