and 와 & 는 비슷하게 생겼지만 완전히 다른 개념이에요. 헷갈리기 쉬운데, 아래 정리로 한 번에 이해할 수 있습니다👇
🔹 1️⃣ and — 논리 연산자 (Logical Operator)
- 파이썬 내장 논리 연산자로, True/False 값을 다룹니다.
- if, while 등 조건문용입니다.
- 파이썬의 전체 객체를 비교하면서 왼쪽부터 평가합니다.
# ✅ and 예시 x = True y = False print(x and y) # False print(x and True) # True # ⚠️ 배열이나 시리즈엔 사용 불가 # 예: # (df['연비'] > 50) and (df['마력'] < 150) ❌ 오류 발생!
오류 메시지 예시:
ValueError: The truth value of a Series is ambiguous.
👉 즉, Series(여러 값)에는 and 못 씀.
🔹 2️⃣ & — 비트 연산자 (Bitwise Operator)
- 정수(int)에서는 비트 단위 AND 연산을 합니다.
- pandas / numpy에서는 요소별(element-wise) 비교 시에 사용됩니다.
# ✅ 숫자에서 비트연산 print(6 & 3) # 6: 110, 3: 011 → 010(=2) # ✅ pandas/numpy에서 조건 결합 (df['연비'] > 50) & (df['마력'] < 150) # 각 행마다 True/False를 AND로 결합
💡 pandas에서는 ( ) 꼭 써야 합니다:
cond = (df['연비'] > 50) & (df['마력'] < 150)
괄호가 없으면 우선순위 오류(&가 비교보다 먼저 계산됨) 발생합니다.
🔹 3️⃣ 정리 표
구분키워드쓰는 곳작동 대상예시
| 논리 연산 | and, or, not | 일반 조건문 | 단일 값 | if a>0 and b>0: |
| 비트 연산 | &, ` | , ~` | pandas, numpy | 시리즈/배열 |
✅ 요약
- 단일 조건 → and
- DataFrame, Series → &
- 괄호는 항상 (조건1) & (조건2) 형태로 묶기
'데이터 분석' 카테고리의 다른 글
| 파이썬 데이터 분석에서 isnull()과 isna()의 차이? (0) | 2025.10.21 |
|---|---|
| 구글 코랩 colab 단축키 정리 (0) | 2025.10.20 |
| 인공지능 모델 성능 지표 설명과 예시 (1) | 2025.10.18 |
| Boxplot에서 평균(mean) 대충 비교하는 방법 (0) | 2025.10.18 |
| 인공지능 편향(bias) 이해하기 위한 예시 (0) | 2025.10.18 |