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

Pandas Python에서 apply() 함수로 행 또는 열에 연산 적용하기

데이터 분석 작업을 하다 보면 데이터프레임(DataFrame)의 축(axis)을 따라 특정 함수를 적용해야 하는 경우가 자주 발생합니다. Pandas에서는 apply() 함수를 사용해 이를 손쉽게 처리할 수 있습니다.

축(Axis)의 기본 동작

축을 별도로 지정하지 않으면 기본적으로 열(column) 방향으로 연산이 수행되며, 이때 각 열은 하나의 배열처럼 취급됩니다. 반대로 axis=1과 같이 축을 명시적으로 지정하면 행(row) 방향으로 연산이 진행됩니다.

apply() 함수는 점(.) 연산자를 통해 데이터프레임 객체에 직접 호출할 수 있습니다. NumPy의 집계 함수(예: np.mean)와 함께 사용하면 각 열의 평균값 등을 한 번에 계산할 수 있습니다.

예제 코드

import pandas as pd
import numpy as np

my_data = {'Age': pd.Series([45, 67, 89, 12, 23]),
           'value': pd.Series([8.79, 23.24, 31.98, 78.56, 90.20])}

print("The dataframe is :")
my_df = pd.DataFrame(my_data)
print(my_df)

print("The description of data is :")
print(my_df.apply(np.mean))

실행 결과

The dataframe is :
    Age   value
0   45    8.79
1   67   23.24
2   89   31.98
3   12   78.56
4   23   90.20

The description of data is :
Age      47.200
value    46.554
dtype: float64

코드 설명

  • 필요한 라이브러리인 pandas와 numpy를 임포트하고, 사용 편의성을 위해 pd, np라는 별칭(alias)을 지정합니다.

  • 키(key)와 값(value)으로 구성된 딕셔너리를 생성합니다. 여기서 값은 실제로 시리즈(Series) 데이터 구조입니다.

  • 이 딕셔너리는 pandas 라이브러리의 DataFrame() 함수에 매개변수로 전달되어 데이터프레임을 만드는 데 사용됩니다.

  • 생성된 데이터프레임이 콘솔에 출력됩니다.

  • 데이터프레임에 apply(np.mean)을 호출하여 각 열(숫자형 데이터)의 평균값을 계산합니다.

  • 계산된 결과가 콘솔에 출력됩니다. Age 열의 평균은 47.2, value 열의 평균은 46.554입니다.

참고: axis 옵션 활용

행 단위로 연산하고 싶다면 my_df.apply(np.sum, axis=1)처럼 axis=1을 지정하면 됩니다. 이 경우 각 행별로 합계가 계산됩니다. 이처럼 apply()는 사용자 정의 함수나 lambda식과도 함께 사용할 수 있어 매우 유연한 데이터 처리가 가능합니다.