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

Python Pandas - pdpipe 파이프라인으로 생성된 DataFrame에서 특정 행 제거하기

이미 생성된 Pandas DataFrame에서 특정 행을 제거하려면 pdpipe 라이브러리의 ValDrop() 메서드를 사용할 수 있습니다. pdpipe는 데이터 전처리 과정을 파이프라인 형태로 구성할 수 있게 해주는 유용한 라이브러리로, 복잡한 전처리 작업을 단계별로 깔끔하게 관리할 수 있습니다.

1. 라이브러리 임포트하기

먼저 필요한 pdpipe와 pandas 라이브러리를 각각의 별칭과 함께 임포트합니다.

import pdpipe as pdp
import pandas as pd

2. DataFrame 생성하기

예제로 사용할 DataFrame을 만들어 보겠습니다. 여기에는 'Car'와 'Units' 두 개의 열이 있습니다.

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

3. ValDrop()으로 행 제거하기

이제 ValDrop() 메서드를 사용하여 'Car' 열의 값이 'Jaguar'인 행을 제거합니다. ValDrop은 첫 번째 인자로 제거할 값의 목록을, 두 번째 인자로 대상 열 이름을 받습니다.

dataFrame = pdp.ValDrop(['Jaguar'], 'Car').apply(dataFrame)

전체 예제 코드

아래는 새로운 열을 추가하고 행을 제거하는 과정까지 포함한 완전한 코드입니다.

import pdpipe as pdp
import pandas as pd

# 재고 상태를 확인하는 함수
def demo(x):
    if x >= 100:
        return "OverStock"
    else:
        return "UnderStock"

# DataFrame 생성
dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],
        "Units": [100, 150, 110, 80, 110, 90]
    }
)

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

# 기존 'Units' 열을 기반으로 새로운 'Stock' 열 추가
dataFrame['Stock'] = dataFrame['Units'].apply(demo)

print("\n새로운 열이 추가된 DataFrame...\n", dataFrame)

# pdp를 사용하여 행 제거
dataFrame = pdp.ValDrop(['Jaguar'], 'Car').apply(dataFrame)
print("\n행이 제거된 후의 DataFrame...\n", dataFrame)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

DataFrame ...
       Car  Units
0     BMW    100
1   Lexus    150
2    Audi    110
3 Mustang     80
4 Bentley    110
5  Jaguar     90

새로운 열이 추가된 DataFrame...
       Car  Units       Stock
0     BMW    100   OverStock
1   Lexus    150   OverStock
2    Audi    110   OverStock
3 Mustang     80  UnderStock
4 Bentley    110   OverStock
5  Jaguar     90  UnderStock

행이 제거된 후의 DataFrame...
       Car  Units       Stock
0     BMW    100   OverStock
1   Lexus    150   OverStock
2    Audi    110   OverStock
3 Mustang     80  UnderStock
4 Bentley    110   OverStock

정리

pdpipe의 ValDrop() 메서드를 활용하면 별도의 복잡한 필터링 코드 없이도 특정 열의 값을 기준으로 행을 간단하게 제거할 수 있습니다. 또한 이 방식은 파이프라인에 다른 전처리 단계와 함께 연결하여 재사용 가능한 데이터 처리 흐름을 구축하는 데 특히 유용합니다.