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를 사용하는 방법