파이썬/데이터프레임 다루기

Pandas 불리언 인덱싱: 연산자 우선순위와 사용 규칙

Data Jun 2025. 8. 30. 18:39

Pandas에서 조건을 결합할 때는 연산자 우선순위사용 가능한 연산자를 확실히 알아두는 게 중요합니다.

 

연산자 우선순위

불리언 조건에서는 다음과 같은 순서로 연산이 수행됩니다.

NOT  (~)  >  AND (&)  >  OR (|)

예시:

(df["age"] > 20) | (df["age"] < 10) & ~(df["age"] == 15)

실행 순서

  1. ~(df["age"] == 15)
  2. (df["age"] < 10) & 위 결과
  3. (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 조건 필터링에서는 기호 연산자(&, |, ~) 를 쓰는 게 정석입니다.