판다스 조건 연산자 : &

30 P
QUESTION 09 #297
데이터프레임에서 두 가지 조건을 모두 만족(AND)하는 데이터를 추출하고자 합니다. 빈칸에 알맞은 기호를 적으세요.
main.py
import pandas as pd

movie = pd.DataFrame({
    '제목': ['범죄도시', '엘리멘탈', '기생충', '슬램덩크', '탑건'],
    '평점': [8.2, 9.3, 9.1, 9.5, 8.8],
    '시간(분)': [105, 101, 132, 124, 130]
})

# 평점 9.0 초과 그리고(AND) 시간 110분 이하
movie2 = movie[(['평점'] > 9.0) & (['시간(분)'] <= 110)]

print(movie2[['제목', '평점']])
실행 결과 예시
     제목   평점
1  엘리멘탈  9.3
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

& 연산자 - 두 조건을 동시에 만족하는 데이터 추출

판다스에서 두 가지 이상의 조건을 동시에 적용할 때 & 연산자를 사용합니다.

기본 문법

df[(조건1) & (조건2)]

코드 분석

movie2 = movie[(movie['평점'] > 9.0) & (movie['시간(분)'] <= 110)]

조건1: 평점이 9.0 초과
조건2: 시간이 110분 이하
&: 두 조건을 모두 만족

동작 과정

제목 평점 시간 평점 > 9.0 시간 <= 110 둘 다 만족?
범죄도시 8.2 105 False True False
엘리멘탈 9.3 101 True True True ✅
기생충 9.1 132 True False False
사랑메모 9.5 124 True False False
한건 8.8 130 False False False

결과: 엘리멘탈만 두 조건을 모두 만족!

괄호가 반드시 필요한 이유

# ❌ 오류 발생! (& 가 >= 보다 우선순위가 높음)
df[movie['평점'] > 9.0 & movie['시간(분)'] <= 110]

# ✅ 각 조건을 괄호로 감싸야 함
df[(movie['평점'] > 9.0) & (movie['시간(분)'] <= 110)]

and vs & 차이

비교 and &
용도 일반 파이썬 조건문 판다스 데이터프레임
비교 방식 단일 True/False 행별 True/False
사용 예 if a > 5 and b < 10: df[(조건1) & (조건2)]

OR 조건: | 연산자

# 평점 9.0 초과 또는 시간 110분 이하
df[(movie['평점'] > 9.0) | (movie['시간(분)'] <= 110)]
연산자 의미 파이썬 대응
& AND (그리고) and
| OR (또는) or
~ NOT (부정) not

💡 핵심: 판다스에서 여러 조건을 결합할 때는 &(AND), |(OR)을 사용하고, 각 조건을 반드시 괄호로 감싸세요.