조건 검색
조건식을 이용하여 데이터 프레임에서 필요한 행 선택.
실습 준비
import pandas as pd
sales = pd.read_excel("sales.xlsx")
쿼리
🤖 AI 프롬프트
sales에서 qty가 5보다 큰 행을 선택해줘. query() 사용.
query()에 조건식을 문자열로 전달하면 조건이 참인 행 선택. 조건식 안에서는 열 이름을 변수처럼 사용.
다음은 수량이 5보다 큰 행 선택.
sales.query("qty > 5")
실행 결과
product region qty unit_price
2 키보드 서울 8 85000
3 마우스 대전 10 45000
5 헤드셋 서울 6 95000
수량이 8, 10, 6인 키보드·마우스·헤드셋 판매 내역 선택.
비교 연산자
🤖 AI 프롬프트
sales에서 region이 서울인 행을 선택해줘.
| 연산자 | 의미 | 조건 예시 | 선택할 행 |
|---|---|---|---|
== |
같다 | qty == 5 |
수량이 5인 행 |
!= |
다르다 | qty != 5 |
수량이 5가 아닌 행 |
> |
크다 | qty > 5 |
수량이 5 초과인 행 |
>= |
크거나 같다 | qty >= 5 |
수량이 5 이상인 행 |
< |
작다 | qty < 5 |
수량이 5 미만인 행 |
<= |
작거나 같다 | qty <= 5 |
수량이 5 이하인 행 |
문자열 값은 따옴표로 감싸서 비교. 다음은 지역이 서울인 행 선택.
sales.query('region == "서울"')
실행 결과
product region qty unit_price
0 노트북 서울 3 1200000
2 키보드 서울 8 85000
5 헤드셋 서울 6 95000
and
🤖 AI 프롬프트
sales에서 qty가 5보다 크고 region이 서울인 행을 선택해줘.
and: 두 조건이 모두 참인 행 선택. 다음은 수량이 5보다 크고 지역이 서울인 행 선택.
sales.query('qty > 5 and region == "서울"')
실행 결과
product region qty unit_price
2 키보드 서울 8 85000
5 헤드셋 서울 6 95000
두 조건을 함께 만족하는 키보드와 헤드셋 판매 내역 선택.
or
🤖 AI 프롬프트
sales에서 region이 서울이거나 부산인 행을 선택해줘.
or: 두 조건 중 하나 이상이 참인 행 선택. 다음은 지역이 서울이거나 부산인 행 선택.
sales.query('region == "서울" or region == "부산"')
실행 결과
product region qty unit_price
0 노트북 서울 3 1200000
1 모니터 부산 5 320000
2 키보드 서울 8 85000
4 웹캠 부산 4 110000
5 헤드셋 서울 6 95000
not
🤖 AI 프롬프트
sales에서 qty가 5 미만이면서 region이 서울인 행을 제외해줘.
not: 조건의 참과 거짓을 반대로 바꾸어 선택. 다음은 수량이 5 미만이면서 지역이 서울인 경우를 제외.
sales.query('not (qty < 5 and region == "서울")')
실행 결과
product region qty unit_price
1 모니터 부산 5 320000
2 키보드 서울 8 85000
3 마우스 대전 10 45000
4 웹캠 부산 4 110000
5 헤드셋 서울 6 95000
괄호 안의 두 조건을 모두 만족하는 노트북 판매 내역만 제외.
in과 not in
🤖 AI 프롬프트
sales에서 region이 서울 또는 부산에 포함되는 행을 선택해줘.
in: 열의 값이 지정한 목록에 포함되는 행 선택. 같은 열의 여러 값을 비교할 때 or보다 간결하게 표현 가능.
sales.query('region in ["서울", "부산"]')
실행 결과
product region qty unit_price
0 노트북 서울 3 1200000
1 모니터 부산 5 320000
2 키보드 서울 8 85000
4 웹캠 부산 4 110000
5 헤드셋 서울 6 95000
앞의 or 예제와 같은 결과.
🤖 AI 프롬프트
sales에서 region이 서울 또는 부산에 포함되지 않는 행을 선택해줘.
not in: 목록에 포함되지 않는 행 선택.
sales.query('region not in ["서울", "부산"]')
실행 결과
product region qty unit_price
3 마우스 대전 10 45000
서울과 부산을 제외한 대전의 마우스 판매 내역 선택.
외부 변수 사용
🤖 AI 프롬프트
sales에서 qty가 qty의 최댓값과 같은 행을 선택해줘
쿼리 문자열 밖에서 만든 변수는 이름 앞에 @를 붙여 참조. 다음은 가장 큰 수량을 가진 행 선택.
max_quantity = sales["qty"].max()
sales.query("qty == @max_quantity")
실행 결과
product region qty unit_price
3 마우스 대전 10 45000
최대 수량인 10을 가진 마우스 판매 내역 선택.
퀴즈
qty이 5 이상인 행을 선택하는 올바른 코드는 무엇인가요?
퀴즈를 풀려면 대화형 기능을 불러와야 합니다.