Pandas: groupby 개체의 순위를 계산하는 방법


다음 구문을 사용하여 Pandas의 GroupBy 개체 값 순서를 계산할 수 있습니다.

 df[' rank '] = df. groupby ([' group_var '])[' value_var ']. rank ()

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

예: GroupBy 개체의 순위 계산

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
                   ' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})

#view DataFrame
print (df)

  team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26

다음 구문을 사용하여 각 팀의 포인트 값 순위를 계산할 수 있습니다.

 #add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank ()

#view updated DataFrame
print (df)

  team points points_rank
0 to 10 1.5
1 to 10 1.5
2 to 12 3.0
3 to 15 4.0
4 B 19 1.0
5 B 23 2.0
6 C 20 1.5
7 C 20 1.5
8 C 26 3.0

기본적으로 Rank() 함수는 순위 값을 오름차순으로 할당하고 동점인 경우 평균 순위를 사용합니다.

그러나 상향식 방법 과 인수를 사용하여 값을 다른 방식으로 정렬할 수 있습니다.

 #add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank (' dense ', ascending= False )

#view updated DataFrame
print (df)

  team points points_rank
0 to 10 3.0
1 to 10 3.0
2 to 12 2.0
3 to 15 1.0
4 B 19 2.0
5 B 23 1.0
6 C 20 2.0
7 C 20 2.0
8 C 26 1.0

이 방법은 각 그룹의 가장 큰 값에 1의 값을 할당합니다.

여기에서 Rank() 함수와 함께 사용할 수 있는 순위 지정 방법의 전체 목록을 찾을 수 있습니다.

참고 : 여기 에서 pandas의 GroupBy 작업에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

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

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

의견을 추가하다

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