이번 포스팅에서는
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')
위의 예시에서 인수의 옵션 값들을 변경해 가면서
실습해 보시면, 금방 이해하실 수 있을 거예요.
반응형
'Python > Pandas' 카테고리의 다른 글
pandas value_counts() 함수 (0) | 2022.05.02 |
---|---|
Pandas 행 단위 연산 - iterrows(), itertuples(), iloc, loc 함수 (0) | 2022.03.09 |
pandas 문자열 메서드 str. (0) | 2022.02.13 |
pandas 데이터 결합 함수 merge() (0) | 2022.02.13 |
pandas 데이터 구조 소개(DataFrame) (0) | 2022.01.29 |
댓글