logo

조건 검색

조건식을 이용하여 데이터 프레임에서 필요한 행 선택.

실습 준비

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을 가진 마우스 판매 내역 선택.

퀴즈

문제 1 / 4맞음: 0힌트: 0틀림: 0채점중: 0남음: 4

qty이 5 이상인 행을 선택하는 올바른 코드는 무엇인가요?

  • ○sales.query("qty >= 5")
  • ○sales.query("qty == 5")
  • ○sales.query("qty > 5")
  • ○sales.query("qty <= 5")

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.

Previous
인덱스 설정