Pandas: bin 개수와 함께 groupby를 사용하는 방법


다음 구문을 사용하여 pandas에서 다른 변수로 그룹화된 변수의 상자 수를 계산할 수 있습니다.

 #define bins
groups = df. groupby ([' group_var ', pd. cut (df. value_var , bins)])

#display bin count by group variable
groups. size (). unstack ()

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: Pandas의 저장소 수와 함께 GroupBy 사용

서로 다른 팀의 농구 선수들이 득점한 점수를 보여주는 다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
                            'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B'],
                   ' points ': [4, 7, 7, 11, 12, 15, 19, 19,
                             5, 5, 11, 12, 14, 14, 15, 15]})

#view DataFrame
print (df)

   team points
0 to 4
1 to 7
2 to 7
3 to 11
4 to 12
5 to 15
6 to 19
7 to 19
8 B 5
9 B 5
10 B 11
11 B 12
12 B 14
13 B 14
14 B 15
15 B 15

다음 구문을 사용하여 특정 저장소로 그룹화된 각 팀의 포인트 빈도를 계산할 수 있습니다.

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 15, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 15] (15, 20]
  team			
     A 3 3 2
     B 2 6 0

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

  • 전체적으로 A팀의 선수 3 명이 0점에서 10점 사이의 점수를 얻었습니다.
  • 전체적으로 A팀 선수 3 명이 10~15점을 기록했다.
  • 전체적으로 A팀 선수 2 명이 15~20점을 기록했다.

등등.

pd.cut() 함수에서 원하는 bin을 지정할 수 있습니다.

예를 들어, 두 개의 저장소만 정의할 수 있습니다.

 #define groups
groups = df. groupby ([' team ', pd. cut (df. points , [0, 10, 20])])

#display bin count grouped by team
groups. size (). unstack ()

points (0, 10] (10, 20]
  team		
     At 3 5
     B 2 6

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

  • 전체적으로 A팀의 선수 3 명이 0점에서 10점 사이의 점수를 얻었습니다.
  • 전체적으로 A팀 선수 5 명이 10~20점을 기록했다.
  • 전체적으로 B팀의 선수 2 명이 0점에서 10점 사이의 점수를 얻었습니다.
  • B팀 선수 총 6 명이 10~20점을 기록했다.

참고 1 : 여기에서 GroupBy 기능에 대한 전체 문서를 찾을 수 있습니다.

참고 2 : 여기에서 잘라내기 기능에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

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

Pandas: 그룹당 누적 합계를 계산하는 방법
Pandas: 그룹별로 고유한 값을 계산하는 방법
Pandas: 그룹별로 모드를 계산하는 방법
Pandas: 그룹별 상관관계를 계산하는 방법

의견을 추가하다

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