Pandas: crosstab() 함수에서 aggfunc를 사용하는 방법


pandas crosstab() 함수에서 aggfunc 인수를 사용하면 특정 측정항목을 사용하여 값을 집계하는 크로스탭을 만들 수 있습니다.

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=' count ')

aggfunc 의 기본값은 “count”이지만 평균, 중앙값, 합계, 최소값, 최대값 등과 같은 다른 집계 방법을 지정할 수 있습니다.

aggfunc 인수에 여러 집계 방법을 지정할 수도 있습니다.

 p.d. crosstab (index=df. col1 , columns=df. col2 , values=df. col3 , aggfunc=[' min ', ' max '])

다음 예에서는 실제로 다음 pandas DataFrame에서 이러한 각 메서드를 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C '],
                   ' position ':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print (df)

   team position points
0 AG 22
1 AG 25
2 AF 24
3 BG 39
4 BF 34
5 BF 20
6 BF 18
7 GC 17
8 GC 20
9 CF 19
10 CF 22

예 1: aggfunc의 값을 사용하여 크로스탭 만들기

aggfunc=’mean’ 인수와 함께 다음 crosstab() 함수를 사용하여 각 위치 및 팀 조합의 평균 값 포인트를 표시하는 크로스탭을 만들 수 있습니다.

 #create crosstab that displays mean points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' mean ')

position F G
team		
A 24.0 23.5
B 24.0 39.0
C 20.5 18.5

결과를 해석하는 방법은 다음과 같습니다.

  • F 포지션에 있는 A팀 선수들의 평균 점수는 24점 입니다.
  • G 포지션에 있는 A팀 선수들의 평균 점수는 23.5점 입니다.

등등.

최대값과 같은 다른 집계 측정항목을 사용할 수도 있습니다.

 #create crosstab that displays max points value by team and position
p.d. crosstab (index=df. team , columns=df. position , values=df. points , aggfunc=' max ')


position F G
team		
At 24 25
B 34 39
C 22 20

결과를 해석하는 방법은 다음과 같습니다.

  • F 포지션에 있는 A팀 선수의 최대 점수는 24점 입니다.
  • G 포지션에 있는 A팀 선수의 최대 점수는 25점 입니다.

등등.

예 2: aggfunc에 여러 값이 포함된 크로스탭 만들기

aggfunc 인수에 여러 값이 있는 crosstab() 함수를 사용하여 각 위치 및 팀 조합에 대한 여러 측정항목으로 포인트 값을 집계할 수 있습니다.

 #create crosstab that displays min and max points by team and position
p.d. crosstab (df. team , df. position , df. points , aggfunc=[' min ', ' max ']) 

	              min max
position F G F G
team				
A 24 22 24 25
B 18 39 34 39
C 19 17 22 20

결과를 해석하는 방법은 다음과 같습니다.

  • F 포지션에 있는 A 팀 선수의 최소 포인트 값은 24 입니다.
  • G 포지션에 있는 A 팀 선수의 최소 포인트 값은 22 입니다.
  • F 포지션에 있는 A팀 선수의 최대 점수는 24점 입니다.
  • G 포지션에 있는 A 팀 선수의 최대 포인트 값은 25 입니다.

등등.

참고 : 여기에서 pandas crosstab() 함수에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 다른 일반적인 Panda 작업을 수행하는 방법을 설명합니다.

Pandas: 백분율로 크로스탭을 만드는 방법
Pandas: GroupBy 및 값 개수를 사용하는 방법
Pandas: Bin 개수와 함께 GroupBy를 사용하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다