본문 바로가기
Python/Pandas

pandas rank() 함수 - 숫자 데이터의 순위 계산 함수

by 찐남 2022. 3. 6.

이번 포스팅에서는

pandas 라이브러리에서 제공하는

숫자형 데이터에 대한 순위를 계산하는 함수

rank()에 대해서 알아보겠습니다.

 

예를 들어, [393,958,842]의 데이터에

함수를 적용하면 [3,1,2]가 반환됩니다.

 

기본적으로 동일한 값에 대해서는 

해당 값의 순위 평균인 순위가 할당됩니다.

DataFrame.rank(
    axis=0,     
    method='average',
    numeric_only=NoDefault.no_default,
    na_option='keep',
    ascending=True,
    pct=False
)

 

rank 함수에 대한 인수 설명은 아래와 같습니다.

  • axis: 직접 순위에 대한 인덱스
    • {0 or ‘index’, 1 or ‘columns’}, default 0
  • method: {default 'average'} 동일한 값을 가진 레코드 그룹의 순위를 매기는 방법
    • average: 그룹의 평균 순위
    • min: 그룹에서 가장 낮은 순위
    • max: 그룹에서 가장 높은 순위
    • first: 배열에 나타나는 순서대로 할당된 순위
    • dense: 'min'과 비슷하지만 그룹 간에 순위는 항상 1식 증가
  • numeric_only: {'bool', optional} DataFrame object에 있어서 True로 설정된 경우 숫자 열만 순위 지정
  • na_option: {‘keep’, ‘top’, ‘bottom’}, default ‘keep’
    • NaN 값의 순위를 지정하는 방법으로
    • keep: NaN 값에 NaN 순위 할당
    • top: NaN 값에 가장 낮은 순위 할당
    • bottom: NaN 값에 가장 높은 순위 지정
    • ascending: {bool, default True} 요소의 순위를 오름차순으로 지정해야 하는지 여부
  • pct: {bool, default  False} 반환된 순위를 백분위수 형식으로 표시할지 여부 

 

=> return 값: 데이터 순위를 값으로 포함하는 Series 또는 DataFrame 반환

 

 


간단한 데이터로 결괏값을 확인해 보겠습니다.

# Example
import numpy as np
import pandas as pd
df = pd.DataFrame(data = {
        'Animal': ['cat', 'penguin', 'dog','spider', 'snake'],
        'Number_legs': [4, 2, 4, 8, np.nan],
        'price': [300, 800, 500, 200, 100]
    }
)

df.rank()

df.rank(axis = 1)

df['Number_legs'].rank(method='dense')

df.rank(numeric_only = True)

df['Number_legs'].rank(na_option = 'bottom')

 

위의 예시에서 인수의 옵션 값들을 변경해 가면서

실습해 보시면, 금방 이해하실 수 있을 거예요.

반응형

댓글