ValueError: the truth value of Series is ambiguous. Use a.empty, a.any(), a.all() ..... 

 

시리즈나 데이터프레임에서 비교연산을 할 때 위와 같은 에러가 뜨는 경우가 있다. 

대표적으로 위의 상황에서 파이썬 논리연산자인 and나 or 등을 사용하면 위의 에러가 뜨게 된다.

ex) [(df.col < 10) and (df.col > 5)] 와 같은 경우

< 해결방법 >

np.logical_and(or) 을 쓰거나 간단하게 &(|)을 사용하면 된다.

추가로 & 을 쓸 때 실수하는 부분이, 위의 예시에서 (df.col < 10)이 아닌 df.col < 10으로 소괄호가 없이 썻다면

&의 연산자의 우선순위가 높으므로

typeerror cannot compare a dtyped float array with a scalar of type bool

다음과 같은 에러가 뜰것이니 주의하기 바란다.