Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas filter() 함수로 원하는 열만 골라내는 방법

Pandas에서 filter() 함수를 사용하면 DataFrame에서 특정 열의 부분 집합(subset)을 손쉽게 만들 수 있습니다. 특히 like 매개변수를 활용하면 이름에 공통 패턴이 포함된 열들을 한 번에 추출할 수 있어 매우 유용합니다.

1. 예제용 DataFrame 만들기

먼저 세 개의 열을 가진 DataFrame을 생성해 보겠습니다.

dataFrame = pd.DataFrame({
    "Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],
    "Opening_Stock": [300, 700, 1200, 1500],
    "Closing_Stock": [200, 500, 1000, 900]
})

2. 여러 열로 부분 집합 만들기

인덱싱 연산자 [[]] 안에 원하는 열 이름을 리스트로 전달하면 여러 열을 동시에 선택할 수 있습니다.

dataFrame[['Opening_Stock', 'Closing_Stock']]

3. filter()와 like로 유사한 이름의 열 선택하기

filter(like='Open')처럼 지정하면 열 이름에 'Open'이 포함된 모든 열이 자동으로 필터링됩니다.

dataFrame.filter(like='Open')

전체 예제 코드

지금까지 설명한 내용을 하나로 합친 완성된 코드는 다음과 같습니다.

import pandas as pd

dataFrame = pd.DataFrame({
    "Product": ["SmartTV", "ChromeCast", "Speaker", "Earphone"],
    "Opening_Stock": [300, 700, 1200, 1500],
    "Closing_Stock": [200, 500, 1000, 900]
})

print("DataFrame...\n", dataFrame)

print("\n인덱싱 연산자로 부분 집합 출력:\n", dataFrame[['Product']])

print("\n여러 열로 구성된 부분 집합 출력:\n", dataFrame[['Opening_Stock', 'Closing_Stock']])

print("\n유사한 이름 패턴으로 필터링한 부분 집합 출력:\n", dataFrame.filter(like='Open'))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame...
    Closing_Stock   Opening_Stock     Product
0             200              300     SmartTV
1             500              700  ChromeCast
2            1000             1200     Speaker
3             900             1500    Earphone

인덱싱 연산자로 부분 집합 출력:
       Product
0     SmartTV
1  ChromeCast
2      Speaker
3     Earphone

여러 열로 구성된 부분 집합 출력:
    Opening_Stock   Closing_Stock
0             300              200
1             700              500
2            1200             1000
3            1500              900

유사한 이름 패턴으로 필터링한 부분 집합 출력:
    Opening_Stock
0             300
1             700
2            1200
3            1500

정리

filter(like='패턴')은 열 이름에 특정 문자열이 포함된 열들을 일괄적으로 가져올 때 유용하며, 정규식을 사용하는 regex 옵션도 함께 제공되므로 상황에 맞게 활용하면 됩니다.