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.0 과 5.0 입니다.
- 팀 2 점수의 1분위수와 3분위수는 각각 2.0 과 3.0 입니다.
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 기능을 수행하는 방법을 설명합니다.
Pandas에서 그룹당 최대값을 찾는 방법
팬더에서 그룹 목격 횟수를 계산하는 방법
Pandas에서 열의 평균을 계산하는 방법