Pandas DataFrame rank() 메서드 사용법

Beginner

소개

이 랩에서는 Pandas 의 DataFrame.rank() 메서드를 사용하여 DataFrame 의 데이터에 순위를 할당하는 방법을 배우게 됩니다. rank() 메서드는 지정된 축 (index 또는 column 축) 을 따라 1 부터 n 까지의 숫자 순위를 제공합니다. 이를 통해 특정 열을 기준으로 DataFrame 의 값 순위를 결정할 수 있습니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 즉시 해결해 드리겠습니다.

DataFrame 생성 및 열 순위 지정

먼저 DataFrame 을 생성하고 rank() 메서드를 사용하여 DataFrame 의 열 중 하나에 순위를 할당해 보겠습니다. 이 예제에서는 'Profit' 열을 오름차순으로 순위를 매길 것입니다.

## pandas 라이브러리 import
import pandas as pd

## DataFrame 생성
df = pd.DataFrame({
    'Product_Id': [1001, 1002, 1003, 1004],
    'Product_Name': ['Coffee powder', 'Black pepper', 'rosemary', 'Cardamom'],
    'customer_Name': ['Navya', 'Vindya', 'pooja', 'Sinchana'],
    'ordered_Date': ['16-3-2021', '17-3-2021', '18-3-2021', '18-3-2021'],
    'ship_Date': ['18-3-2021', '19-3-2021', '20-3-2021', '20-3-2021'],
    'Profit': [750, 652.14, 753.8, 900.12]
})

## rank() 메서드를 사용하여 'Profit' 열에 순위 할당
df['ranked_profit'] = df['Profit'].rank()

## DataFrame 표시
df

내림차순으로 열 순위 지정

다음으로, ascending 매개변수를 False 로 설정하여 1 단계의 예제를 수정해 보겠습니다. 이렇게 하면 열이 내림차순으로 순위가 매겨집니다.

## pandas 라이브러리 import
import pandas as pd

## DataFrame 생성
df = pd.DataFrame({
    'Product_Id': [1001, 1002, 1003, 1004],
    'Product_Name': ['Coffee powder', 'Black pepper', 'rosemary', 'Cardamom'],
    'customer_Name': ['Navya', 'Vindya', 'pooja', 'Sinchana'],
    'ordered_Date': ['16-3-2021', '17-3-2021', '18-3-2021', '18-3-2021'],
    'ship_Date': ['18-3-2021', '19-3-2021', '20-3-2021', '20-3-2021'],
    'Profit': [750, 652.14, 753.8, 900.12]
})

## rank() 메서드를 사용하여 'Profit' 열에 내림차순으로 순위 할당
df['ranked_profit'] = df['Profit'].rank(ascending=False)

## DataFrame 표시
df

다양한 방법으로 열 순위 지정

DataFrame 에 중복된 값이 포함된 경우, 다양한 방법을 사용하여 열의 순위를 지정할 수 있습니다.

  • 'average' 메서드는 중복된 값에 평균 순위를 할당합니다.
  • 'min' 메서드는 중복된 값에 가장 낮은 순위를 할당합니다.
  • 'max' 메서드는 중복된 값에 가장 높은 순위를 할당합니다.
  • 'first' 메서드는 DataFrame 에 나타나는 순서대로 순위를 할당합니다.
  • 'dense' 메서드는 'min'과 유사하지만, 순위는 그룹 간에 항상 1 씩 증가합니다.
## pandas 라이브러리 import
import pandas as pd

## DataFrame 생성
df = pd.DataFrame({
    'column_1': [1, 3, 3, 4, 7],
    'column_2': [1, 2, 3, 4, 5]
})

## 다양한 방법으로 rank() 메서드 사용
df['average_rank'] = df['column_1'].rank(method='average')
df['min_rank'] = df['column_1'].rank(method='min')
df['max_rank'] = df['column_1'].rank(method='max')
df['first_rank'] = df['column_1'].rank(method='first')
df['dense_rank'] = df['column_1'].rank(method='dense')

## DataFrame 표시
df

Null 값 포함 열 순위 지정

DataFrame 에 null 값 (NaN) 이 포함된 경우, na_option 매개변수를 사용하여 null 값의 순위를 지정하는 방법을 지정할 수 있습니다.

  • na_option'keep'으로 설정되면 null 값에는 NaN 순위가 할당됩니다.
  • na_option'top'으로 설정되면 null 값에는 가장 작은 순위가 할당됩니다.
  • na_option'bottom'으로 설정되고 ascending=True이면 null 값에는 가장 높은 순위가 할당됩니다.
## pandas 라이브러리 import
import pandas as pd
import numpy as np

## null 값이 있는 DataFrame 생성
df = pd.DataFrame({
    'column_1': [1, 3, np.nan, 4, np.nan],
    'column_2': [1, 2, 3, np.nan, np.nan]
})

## 다양한 na_option 매개변수를 사용하여 rank() 메서드 사용
df['keep_rank_Nan'] = df['column_2'].rank(na_option='keep')
df['Top_rank_Nan'] = df['column_2'].rank(na_option='top')
df['Bottom_rank_Nan'] = df['column_1'].rank(na_option='bottom')

## DataFrame 표시
df

요약

이 랩에서는 Pandas 의 DataFrame.rank() 메서드를 사용하여 DataFrame 의 데이터에 순위를 할당하는 방법을 배웠습니다. axis, method, numeric_only, na_option, ascending, pct 와 같은 다양한 매개변수를 지정하여 순위 지정 프로세스를 사용자 정의할 수 있습니다. rank() 메서드는 열 내의 값의 위치를 식별하고 순위를 기반으로 데이터를 정렬하는 데 유용합니다.