여러 조건으로 Pandas DataFrame 필터링

Suraj Joshi 2023년1월30일
  1. 인덱싱을 사용하여 여러 조건을 기반으로 DataFrame의 항목 필터링
  2. query()메서드를 사용하여 여러 조건을 기반으로 데이터 프레임의 항목 필터링
여러 조건으로 Pandas 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
작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

관련 문장 - Pandas Filter