Pandas에서 그룹별로 분위수를 계산하는 방법


다음 기본 구문을 사용하여 Pandas에서 그룹별로 분위수를 계산할 수 있습니다.

 df. groupby (' grouping_variable '). quantile ( .5 )

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

예시 1: 그룹별 분위수 계산

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import pandas as pd

#createDataFrame 
df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
                   ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]})

#view first five rows
df. head ()

team score
0 1 3
1 1 4
2 1 4
3 1 5
4 1 5 

다음 코드는 “팀” 열을 기준으로 그룹화된 “포인트” 열 값의 90번째 백분위수를 계산하는 방법을 보여줍니다.

 df. groupby (' team '). quantile ( .90 )

	score
team	
1 6.5
2 4.0

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

  • 팀 1의 ‘점수’ 90번째 백분위수는 6.5 입니다.
  • 팀 2의 ‘점수’ 90번째 백분위수는 4.0 입니다.

예 2: 그룹당 여러 분위수 계산

다음 코드는 그룹당 한 번에 여러 분위수를 계산하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
                   ' score ': [3, 4, 4, 5, 5, 8, 1, 2, 2, 3, 3, 5]})

#create functions to calculate 1st and 3rd quartiles
def q1(x):
    return x. quantile ( 0.25 )

def q3(x):
    return x. quantile ( 0.75 )

#calculate 1st and 3rd quartiles by group
vals = {' score ': [q1, q3]}

df. groupby (' team '). agg (vals)

	score
        q1 q3
team		
1 4.0 5.0
2 2.0 3.0

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

  • 팀 1 점수의 1분위수와 3분위수는 각각 4.05.0 입니다.
  • 팀 2 점수의 1분위수와 3분위수는 각각 2.03.0 입니다.

추가 리소스

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

Pandas에서 그룹당 최대값을 찾는 방법
팬더에서 그룹 목격 횟수를 계산하는 방법
Pandas에서 열의 평균을 계산하는 방법

의견을 추가하다

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