HOWTO · Pandas

여러 조건으로 Pandas DataFrame 필터링

이 자습서에서는 여러 조건에 따라 DataFrame에서 항목을 필터링하는 방법을 설명합니다.

이 페이지의 내용

이 자습서에서는 여러 조건에 따라 DataFrame에서 항목을 필터링하는 방법을 설명합니다.

이 기사에서는 아래 DataFrame을 사용합니다.

import pandas as pd

stocks_df = pd.DataFrame(
    {
        "Stock": ["Tesla", "Moderna Inc", "Facebook", "Boeing"],
        "Price": [835, 112, 267, 209],
        "Sector": ["Technology", "Health Technology", "Technology", "Aircraft"],
    }
)

print(stocks_df)

출력:

         Stock  Price             Sector
0        Tesla    835         Technology
1  Moderna Inc    112  Health Technology
2     Facebook    267         Technology
3       Boeing    209           Aircraft

인덱싱을 사용하여 여러 조건을 기반으로 DataFrame의 항목 필터링

import pandas as pd

stocks_df = pd.DataFrame(
    {
        "Stock": ["Tesla", "Moderna Inc", "Facebook", "Boeing"],
        "Price": [835, 112, 267, 209],
        "Sector": ["Technology", "Health Technology", "Technology", "Aircraft"],
    }
)

print("Stocks DataFrame:")
print(stocks_df, "\n")

reqd_stocks = stocks_df[(stocks_df.Sector == "Technology") & (stocks_df.Price < 500)]

print("The stocks of technology sector with price less than 500 are:")
print(reqd_stocks)

출력:

Stocks DataFrame:
         Stock  Price             Sector
0        Tesla    835         Technology
1  Moderna Inc    112  Health Technology
2     Facebook    267         Technology
3       Boeing    209           Aircraft

The stocks of technology sector with price less than 500 are:
      Stock  Price      Sector
2  Facebook    267  Technology

Sector열의 값이 Technology이고 Price열의 값이 500 미만인 stocks_df의 모든 항목을 필터링합니다.

여러 조건을 기반으로 값을 인덱싱하기 위해&또는|연산자를 사용하여 조건을 연결하는[]내부에 조건을 지정합니다. &연산자는 논리and를 나타내며 항목을 선택하려면 두 조건이 모두 참이어야합니다. |연산자는 항목을 선택하기위한 조건이 충족되는지를 의미하는 논리or를 나타냅니다.

query()메서드를 사용하여 여러 조건을 기반으로 데이터 프레임의 항목 필터링

&또는|연산자로 연결된 여러 조건을query()메서드에 인수로 전달합니다.

import pandas as pd

stocks_df = pd.DataFrame(
    {
        "Stock": ["Tesla", "Moderna Inc", "Facebook", "Boeing"],
        "Price": [835, 112, 267, 209],
        "Sector": ["Technology", "Health Technology", "Technology", "Aircraft"],
    }
)
print("Stocks DataFrame:")
print(stocks_df, "\n")

reqd_stocks = stocks_df.query("Sector == 'Technology' & Price <500")

print("The stocks of technology sector with price less than 500 are:")
print(reqd_stocks)

출력:

Stocks DataFrame:
         Stock Price             Sector
0        Tesla    835         Technology
1 Moderna Inc    112 Health Technology
2     Facebook    267         Technology
3       Boeing    209           Aircraft

The stocks of technology sector with price less than 500 are:
      Stock Price      Sector
2 Facebook    267 Technology