Data handling
[pandas] ValueError: Cannot mask with non-boolean array containing NA / NaN values 해결법
study&grow
2021. 7. 15. 12:38
728x90
1. 문제가 발생하는 원인
조건문으로 mask(True 혹은 False로 이루어진 series) 를 만들고,
df[ mask ] 로 df중 mask에 해당하는 row들만 선택할 수 있다.
[pandas] 특정 칼럼이 문자열로 이루어졌을 경우, 특정 조건을 만족하는 row만 select 하기
sinhan6_ = sinhan6[sinhan6['시군구'].str.contains('종로구|중구|용산구|성동구|광진구|동대문구|중랑구|성북구|강북구|도봉구|노원구|은평구|서대문구|마포구|양천구|강서구|구로구|금천구|영등포구|관악
study-grow.tistory.com
이때 mask에 False, True 가 아닌 Nan값이 들어가서 발생하는 문제다.
2. 해결 방법
sinhan6_2 = sinhan6_[~sinhan6_['행정동'].str.contains('중앙동|동광동|대청동|보수동|부평동|광복동|남포동|영주1동|영주2동|대저1동|대저2동|강동동|명지1동|명지2동|가락동|녹산동|가덕도동', na=False)].reset_index(drop=True)
str.contains 함수내에 인자로 na=False를 추가해준다.
참고
https://ddolcat.tistory.com/845
[Python]파이썬 데이터프레임(DataFrame) 문자열 포함 여부 확인시 발생하는 ValueError: Cannot mask with non-
엑셀파일(xlsx)을 읽어서 판다스(pandas) 데이터프레임(DataFrame) 타입으로 데이터를 읽어 들였다. 그리고 내가 찾고자하는 문자열을 포함하는 행을 찾기 위해 str.contains()메소드를 사용하였다. 이 함
ddolcat.tistory.com