PROGRESS
7 / 12
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 07 #292
데이터프레임에서 '가격'이 2000원 이상인 메뉴들만 추출하려고 합니다. 빈칸에 알맞은 객체(변수)명을 적으세요.
main.py
import pandas as pd
df = pd.DataFrame({
'메뉴': ['아메리카노', '카페라떼', '딸기주스', '카푸치노', '초코쉐이크'],
'종류': ['커피', '커피', '과일', '커피', '디저트'],
'가격': [2000, 2500, 1500, 3000, 2000]
})
# 조건: 가격이 2000원 이상인 데이터만 추출
coffee_menu = df[['가격' ] >= 2000]
print(coffee_menu)
HINT
데이터가 담겨 있는 데이터프레임 변수 이름은 df입니다.
실행 결과 예시
메뉴 종류 가격 0 아메리카노 커피 2000 1 카페라떼 커피 2500 3 카푸치노 커피 3000 4 초코쉐이크 디저트 2000
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
숫자 조건 필터링 심화
데이터프레임에서 숫자 크기 비교로 원하는 데이터를 추출하는 패턴입니다.
필터링 구조 분석
coffee_menu = df[df['가격'] >= 2000]
이 코드는 두 겹의 df가 들어있습니다:
df[ df['가격'] >= 2000 ]
↑ ↑
| └── 안쪽 df: 조건식에서 열에 접근
└────── 바깥쪽 df: True인 행만 추출
동작 과정
| 인덱스 | 메뉴 | 가격 | >= 2000 ? |
|---|---|---|---|
| 0 | 아메리카노 | 2000 | True |
| 1 | 카페라떼 | 2500 | True |
| 2 | 딸기주스 | 1500 | False |
| 3 | 카푸치노 | 3000 | True |
| 4 | 초콜릿케이크 | 2000 | True |
왜 df를 두 번 쓰나요?
# ❌ 이렇게 하면 오류!
df['가격' >= 2000]
# ✅ 올바른 방법
df[df['가격'] >= 2000]
안쪽 df["가격"]은 어떤 열을 비교할지 지정하고, 바깥쪽 df[...]는 결과를 추출하는 역할입니다.
필터링 패턴 정리
# 패턴: df[df["열이름"] 비교연산자 값]
df[df["가격"] >= 2000] # 2000 이상
df[df["가격"] < 1500] # 1500 미만
df[df["가격"] == 2500] # 정확히 2500
df[df["가격"] != 0] # 0이 아닌 것
💡 핵심: 필터링 공식은
df[df["열"] 조건]입니다. df가 두 번 나오는 것이 정상입니다.