판다스 조건 연산자 : &

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)을 사용하고, 각 조건을 반드시 괄호로 감싸세요.