본문 바로가기
기술스택을 쌓아보자/Python

[조각pandas] ValueError: cannot index with vector containing NA / NaN values해결법: na옵션 사용하기

by 소리331 2022. 7. 10.
반응형
title_list[
    title_list["title"].str.startswith(
    "a"
)] # 문자열 시작단어로 검색시도

Traceback (most recent call last):
  File "/opt/conda/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-5-b76175267038>", line 3, in <module>
    "a"
  File "/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py", line 2133, in __getitem__
    return self._getitem_array(key)
  File "/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py", line 2160, in _getitem_array
    if com.is_bool_indexer(key):
  File "/opt/conda/lib/python3.6/site-packages/pandas/core/common.py", line 191, in is_bool_indexer
    raise ValueError('cannot index with vector containing '
ValueError: cannot index with vector containing NA / NaN values

 

pandas의 dataframe에서 str 패키지를 사용해 serise.str.contains, serise.str.startswith, serise.str.endswith, 을 사용할 때 위와 같은 문구가 뜰 때가 있다.

뜨는 이유는 간단하다. 칼럼에 NA/NaN 값이 끼어있어 검색할 수 없기 때문이다. 이럴때는 간단하게 na=False 옵션을 끼워주면 된다.

title_list[
    title_list["report_nm"].str.startswith(
    "a", na=False
)]

 

간딴!

반응형

댓글