>백엔드 개발 >파이썬 튜토리얼 >Pandas GroupBy에서 그룹별 통계(개수, 평균 등)를 계산하는 방법은 무엇입니까?

Pandas GroupBy에서 그룹별 통계(개수, 평균 등)를 계산하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-28 04:36:10533검색

How to Calculate Group-wise Statistics (Count, Mean, etc.) in Pandas GroupBy?

Pandas GroupBy를 사용하여 각 그룹(개수, 평균 등)에 대한 통계 가져오기

문제:

Pandas의 DataFrame df를 사용하고 여러 항목에서 평균, 개수 등과 같은 그룹별 통계를 계산하려고 합니다. columns.

빠른 답변:

그룹당 행 수를 얻으려면 .size()를 호출하면 시리즈가 반환됩니다.

df.groupby(['col1','col2']).size()

개수가 열로 포함된 DataFrame 결과의 경우 사용:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')

자세한 예:

DataFrame df 고려:

  col1 col2  col3  col4  col5  col6
0    A    B  0.20 -0.61 -0.49  1.49
1    A    B -1.53 -1.01 -0.39  1.82
2    A    B -0.44  0.27  0.72  0.11
3    A    B  0.28 -1.32  0.38  0.18
4    C    D  0.12  0.59  0.81  0.66
5    C    D -0.13 -1.65 -1.64  0.50
6    C    D -1.42 -0.11 -0.18 -0.44
7    E    F -0.00  1.42 -0.26  1.17
8    E    F  0.91 -0.47  1.35 -0.34
9    G    H  1.48 -0.63 -1.14  0.17

행 가져오기 개수:

df.groupby(['col1', 'col2']).size()

출력:

col1  col2
A     B       4
C     D       3
E     F       2
G     H       1
dtype: int64

개수를 사용하여 DataFrame 생성:

df.groupby(['col1', 'col2']).size().reset_index(name='counts')

출력:

  col1 col2  counts
0    A    B       4
1    C    D       3
2    E    F       2
3    G    H       1

결과 포함 추가 통계:

평균, 중앙값, 최소값과 같은 추가 통계를 계산하려면 agg()를 사용하세요.

(df
.groupby(['col1', 'col2'])
.agg({
    'col3': ['mean', 'count'],
    'col4': ['median', 'min', 'count']
}))

출력:

            col4                  col3      
          median   min count      mean count
col1 col2                                   
A    B    -0.810 -1.32     4 -0.372500     4
C    D    -0.110 -1.65     3 -0.476667     3
E    F     0.475 -0.47     2  0.455000     2
G    H    -0.630 -0.63     1  1.480000     1

통계를 개별 집계로 분할:

통계를 더 효과적으로 제어하려면 출력, 통계를 분할하고 조인을 사용하여 결합:

gb = df.groupby(['col1', 'col2'])
counts = gb.size().to_frame(name='counts')
(counts
 .join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'}))
 .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'}))
 .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'}))
 .reset_index()
)

출력:

  col1 col2  counts  col3_mean  col4_median  col4_min
0    A    B       4  -0.372500       -0.810     -1.32
1    C    D       3  -0.476667       -0.110     -1.65
2    E    F       2   0.455000        0.475     -0.47
3    G    H       1   1.480000       -0.630     -0.63

위 내용은 Pandas GroupBy에서 그룹별 통계(개수, 평균 등)를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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