python에서는 굉장히 간단한 형태로 string의 empty 여부를 확인한다.
string 자체를 bool이 들어갈 자리에 두면 값이 있는 경우 True, 빈 경우 False를 반환한다.
(strip()이랑 같이 쓰면 IsNullOrWhitespace 처럼 쓸 수 있다.)
여기에 and나 or 같은 논리연산자가 들어가면
가장 마지막에 검사된 값을 반환한다.
예를 들어,
True or 'test'는 True를 반환한다. (True만 검사하면 무조건 True)
True and 'test'는 'test'를 반환한다. ('test'까지 검사해야 True, False를 알 수 있기 때문)
False and 'test'는 False를 반환한다.(False만 검사하면 무조건 False)
이런 고로 논리연산자를 쓸 때 괄호를 쳐주지 않으면 제대로 인식이 되지 않는 케이스가 생긴다.
가령 df[df["test"] == test and df["test1"] == "test"] 같은 형태는
the truth value of a series is ambiguous. use a.empty a.bool() a.item() a.any() or a.all()
같은 에러가 난다.
df[(df["test"] == test) and (df["test1"] == "test")]
괄호로 묶어주면 식이 유효한 경우 에러가 사라진다.
numpy의 경우 and, or 대신 &, | 를 사용해야 되는 케이스가 많다.
'파이썬' 카테고리의 다른 글
[Python] 유튜브 검색어에 대한 영상 리스트의 데이터 가져오기 (0) | 2022.08.22 |
---|---|
[Pandas] Series에서 각 row의 value를 편집해서 필터링 해야 하는 경우 (0) | 2022.08.04 |
[Pandas] np.where 에서 함수를 태워야 될 때 (0) | 2022.07.28 |
[Python] 파이썬 모듈과 함수 호출 (0) | 2022.07.21 |
[Pandas] 기본적인 Pandas의 자료 구조 및 컬럼 추가, 필터링 (0) | 2022.07.20 |