>백엔드 개발 >파이썬 튜토리얼 >Pandas의 그룹화된 DataFrame 열에 여러 함수를 효율적으로 적용하려면 어떻게 해야 합니까?

Pandas의 그룹화된 DataFrame 열에 여러 함수를 효율적으로 적용하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-16 15:47:14355검색

How Can I Efficiently Apply Multiple Functions to Grouped DataFrame Columns in Pandas?

그룹화된 열에 여러 함수를 효율적으로 적용

Series groupby 객체와 달리 사전을 사용하여 DataFrame groupby 객체에 여러 함수를 적용하는 것은 간단하지 않습니다. 그러나 다음 방법을 사용하여 이를 달성하는 효율적인 방법이 있습니다.

적용 방법 사용

원하는 기능이 개별 열에서 작동하는 경우 적용 방법을 활용하는 것은 적합한 옵션. Apply 메소드를 사용하면 전체 그룹(DataFrame)을 다른 객체로 변환하는 함수를 전달할 수 있습니다. 예를 들면 다음과 같습니다.

grouped = df.groupby('group')
aggregated = grouped.apply(lambda x: pd.Series({
    'a_sum': x['a'].sum(),
    'a_max': x['a'].max(),
    'b_mean': x['b'].mean(),
}))

이 접근 방식은 여러 열을 효율적으로 집계하고 원하는 열이 포함된 DataFrame을 반환합니다.

적용에서 시리즈 반환

상호 작용해야 하는 여러 열을 처리할 때 agg 메서드는 암시적으로 Series를 집계 함수에 전달하므로 사용할 수 없습니다. 대신 Series를 반환하는 사용자 지정 함수를 만들 수 있습니다. 예:

def aggregate_group(x):
    return pd.Series({
        'a_sum': x['a'].sum(),
        'b_mean': x['b'].mean(),
        'c_d_prod': (x['c'] * x['d']).sum()
    })

grouped = df.groupby('group')
result = grouped.apply(aggregate_group)

이 방법을 사용하면 여러 그룹화된 열에 여러 함수를 적용하고 단일 단계로 결과를 반환할 수 있습니다.

함수 이름 사용자 정의

원하는 경우 __name__ 속성을 사용하여 함수에 사용자 정의 이름을 할당할 수 있습니다. 함수를 정의한 후 __name__을 원하는 이름으로 설정하면 생성된 열의 명확성이 향상됩니다.

그룹별 개체를 반복하기 위해 루프를 사용하는 것은 일반적으로 위의 방법에 비해 효율성이 떨어진다는 점에 주목할 가치가 있습니다. Pandas는 벡터화된 작업에 최적화되어 있으므로 이러한 기본 제공 방법이 효율적인 그룹 수준 분석을 위해 선호되는 접근 방식입니다.

위 내용은 Pandas의 그룹화된 DataFrame 열에 여러 함수를 효율적으로 적용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.