Pandas DataFrame DataFrame.query() 함수

Suraj Joshi 2023년1월30일
  1. pandas.DataFrame.query()구문:
  2. 예제 코드: 단일 조건이있는DataFrame.query()메서드
  3. 예제 코드: 열 이름에 공백이있는 경우DataFrame.query()메서드
  4. 예제 코드: 여러 조건이있는DataFrame.query()메서드
Pandas DataFrame DataFrame.query() 함수

pandas.DataFrame.query() 메서드는 다음을 사용하여 호출자 DataFrame의 행을 필터링합니다. 주어진 쿼리 표현식.

pandas.DataFrame.query()구문:

DataFrame.query(expr, inplace=False, **kwargs)

매개 변수

expr 필터링되는 행을 기반으로하는 쿼리 표현식
inplace 부울. True이면 호출자DataFrame을 제자리에서 수정합니다.
**kwargs 메서드의 키워드 인수

반환

inplaceTrue이면 필터링 된DataFrame을 반환합니다. 그렇지 않으면 None.

예제 코드: 단일 조건이있는DataFrame.query()메서드

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

filtered_df=df.query('X>1')
print("Filtered DataFrame:")
print(filtered_df)

출력:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Filtered DataFrame:
   X  Y
1  2  1
2  3  8

주어진 쿼리 표현식을 만족하는 행, 즉 X열의 값이 1보다 큰 행만있는 DataFrame을 반환합니다.

예제 코드: 열 이름에 공백이있는 경우DataFrame.query()메서드

이 메서드를DataFrame에 적용하기 전에 쿼리 할 열 이름에 공백이 없는지 확인해야합니다.

공백이있는 열 이름이있는 경우 역 따옴표 (`)를 사용할 수 있습니다.

import pandas as pd

df = pd.DataFrame(
    {
        "X": [
            1,
            2,
            3,
        ],
        "Y": [4, 1, 8],
        "A B": [3, 5, 7],
    }
)
print("Original DataFrame:")
print(df)
filtered_df = df.query("`A B`>5")
print("Filtered DataFrame:")
print(filtered_df)

출력:

Original DataFrame:
   X  Y  A B
0  1  4    3
1  2  1    5
2  3  8    7
Filtered DataFrame:
   X  Y  A B
2  3  8    7

여기서 A B열은 이름에 공백이 있습니다. 열에 대한 쿼리 표현식을 만들기 위해 열 이름을 백틱으로 묶습니다. 그렇지 않으면 오류가 발생합니다.

예제 코드: 여러 조건이있는DataFrame.query()메서드

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

filtered_df=df.query('X>1' and 'Y==1')
print("Filtered DataFrame:")
print(filtered_df)

출력:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Filtered DataFrame:
   X  Y
1  2  1

여러 조건을 기반으로DataFrame을 필터링하려면and 연산자를 사용하여 여러 쿼리 표현식을 결합하여 단일 복합 쿼리 표현식을 만듭니다.

X열의 값이 1보다 크고 Y열의 값이 1인 행이있는 DataFrame을 제공합니다.

inplace = True를 설정하여query()메서드를 호출 한 후 원래 DataFrame을 수정할 수 있습니다.

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
filtered_df=df.query('X>1' and 'Y==1',inplace=True)
print(df)

출력:

   X  Y
1  2  1
작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas DataFrame