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

파이썬 Pandas pipe()로 데이터프레임에 테이블 단위 함수 적용하기

데이터프레임 전체에 한 번에 함수를 적용하고 싶다면 pandas의 pipe() 메서드를 활용하는 것이 가장 깔끔한 방법입니다. 이 글에서는 사용자 정의 함수를 데이터프레임 전체(테이블 단위)에 적용하는 방법을 예제와 함께 살펴보겠습니다.

예를 들어 다음과 같은 데이터프레임이 있고, 여기에 테이블 단위 함수를 적용하면 아래와 같은 결과를 얻을 수 있습니다.

Table wise function:
    Id  Mark
0  6.0  85.0
1  7.0  95.0
2  8.0  75.0
3  9.0  90.0
4 10.0  95.0

해결 방법

다음 단계를 순서대로 따라 하면 문제를 쉽게 해결할 수 있습니다.

  • 먼저 데이터프레임을 정의합니다.

  • 두 개의 인자를 받아 (a + b/2)를 반환하는 사용자 정의 함수 avg를 생성합니다.

def avg(a, b):
    return (a + b / 2)
  • pipe() 함수를 호출하여 첫 번째 인자로 avg 함수를, 두 번째 인자로 10을 전달합니다. 이렇게 하면 데이터프레임의 모든 값에 대해 일괄적으로 계산이 수행됩니다.

df.pipe(avg, 10)

예제 코드

아래 전체 코드를 통해 더 자세히 이해해 보겠습니다.

import pandas as pd

df = pd.DataFrame({'Id': [1, 2, 3, 4, 5], 'Mark': [80, 90, 70, 85, 90]})
print("DataFrame is:\n", df)
print("Table wise function:")

def avg(a, b):
    return (a + b / 2)

print(df.pipe(avg, 10))

동작 원리

pipe()는 데이터프레임 전체를 하나의 객체로 받아 지정된 함수에 전달합니다. 위 예제에서 avg(a, b) 함수는 데이터프레임과 10을 인자로 받아 각 값에 대해 a + b/2, 즉 기존 값에 5를 더한 결과를 반환합니다. 그래서 Id 열은 1→6.0, 2→7.0처럼 변하고, Mark 열은 80→85.0, 90→95.0으로 계산되는 것입니다.

실행 결과

DataFrame is:
 Id Mark
0 1  80
1 2  90
2 3  70
3 4  85
4 5  90
Table wise function:
    Id  Mark
0  6.0  85.0
1  7.0  95.0
2  8.0  75.0
3  9.0  90.0
4 10.0  95.0