Pandas에서 조건을 결합할 때는 연산자 우선순위와 사용 가능한 연산자를 확실히 알아두는 게 중요합니다.
연산자 우선순위
불리언 조건에서는 다음과 같은 순서로 연산이 수행됩니다.
NOT (~) > AND (&) > OR (|)
예시:
(df["age"] > 20) | (df["age"] < 10) & ~(df["age"] == 15)
실행 순서
- ~(df["age"] == 15)
- (df["age"] < 10) & 위 결과
- (df["age"] > 20) | 위 결과
and, or, not vs &, |, ~
- and, or, not → 파이썬 기본 논리 연산자
- 결과가 불리언 단일 값(스칼라) 일 때만 사용 가능
- 예: if x > 10 and y < 20:
- &, |, ~ → 비트 연산자
- Pandas Series(여러 개 불리언 값) 에 적용 가능
- 불리언 인덱싱 시 반드시 사용해야 함
- 예: df[(df["age"] > 10) & (df["age"] < 30)]
정리
- 우선순위는 NOT(~) > AND(&) > OR(|)
- 단일 값 비교 → and, or, not
- Pandas 불리언 인덱싱(Series 비교) → &, |, ~
따라서 Pandas 조건 필터링에서는 기호 연산자(&, |, ~) 를 쓰는 게 정석입니다.
'파이썬 > 데이터프레임 다루기' 카테고리의 다른 글
| Pandas에서 다양한 날짜·시간 데이터 다루기 (0) | 2025.08.31 |
|---|---|
| Pandas에서 불리언 인덱싱을 더 간단하게! query() 함수 사용법 (1) | 2025.08.30 |
| Pandas 불리언 인덱싱에서 괄호는 언제 써야 할까? (0) | 2025.08.30 |
| Pandas 그룹별 단일 값 매핑하기: CaseID별 CATEGORY 유일값 적용 (0) | 2025.04.18 |
| Pandas groupby().agg() vs groupby().apply() – 단일 값 매핑할 때 무엇이 더 적절할까? (0) | 2025.04.18 |