Skip to content

포괄적인 가이드: 효과적으로 Pandas Rank 사용하는 방법

Updated on

파이썬의 데이터 조작 및 분석 라이브러리인 Pandas는 많은 데이터 분석 시나리오에서 중추적인 역할을 하는 rank()라는 다재다능한 도구를 제공합니다. 이 가이드는 여러분의 데이터 처리 기술을 새로운 수준으로 끌어올리기 위해 Pandas Rank를 사용하는 방법에 대해 자세히 설명합니다.

파이썬에서 빠르게 데이터 시각화를 만들고 싶으십니까?

PyGWalker는 Jupyter Notebook 기반 환경에서 데이터 분석 및 시각화 작업을 직접적으로 빠르게 수행할 수 있도록 도와주는 오픈 소스 파이썬 프로젝트입니다.

PyGWalker (opens in a new tab)는 Pandas 데이터프레임(또는 Polars 데이터프레임)을 비주얼 UI로 변환하여 이를 쉽게 드래그앤드롭하여 그래프를 만들 수 있도록 합니다. 다음 코드를 사용하십시오.

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

이제 다음의 온라인 노트북에서 PyGWalker를 실행할 수 있습니다:

그리고 깃허브에서 ⭐️을 누르는 것을 잊지 마세요!

Kaggle 노트북에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker에 ⭐️ 주기 (opens in a new tab)
Kaggle 노트북에서 PyGWalker 실행 (opens in a new tab)Google Colab에서 PyGWalker 실행 (opens in a new tab)PyGWalker에서 ⭐️ 주기 (opens in a new tab)

Pandas Rank의 개념 이해

Pandas Rank는 데이터 포인트의 랭크를 데이터 세트 내에서 계산합니다. 이 함수는 정렬, 필터링 또는 데이터 세트 내에서 구체적인 위치를 식별하는 데 매우 유용합니다. 기본적으로 다음의 두 가지 방법으로 사용할 수 있습니다.

  1. 전체 DataFrame 내에서 데이터 랭킹.
  2. 그룹 단위로 데이터 랭킹을 수행하여 특정 서브그룹 내에서 데이터 랭킹.

rank() 함수의 유틸리티를 잘 이해하기 위해, 랭크 오더 및 메서드의 주요 구성 요소를 깊이 이해해 보겠습니다.

랭크 오더

랭크 오더는 rank() 함수 안의 ascending 매개변수에 의해 결정됩니다. ascending=True일 경우, 랭크는 가장 낮은 값부터 시작합니다. 따라서 낮은 값은 낮은 순위를, 높은 값은 높은 순위를 갖게 됩니다. 그러나 가장 높은 값을 1위로 랭킹하고자 하는 경우에는 ascending=False로 설정해야 합니다.

메서드

rank() 함수에서 method 매개변수는 동일한 값의 데이터 포인트를 처리하는 방법을 결정합니다. 이를 처리하는 여러 가지 방법들이 있습니다.

  • average: 그룹의 평균 랭크를 취하여 모든 항목에 적용합니다.
  • min: 그룹의 최저 랭크를 모든 항목에 적용합니다.
  • max: 모든 항목에 그룹에서 가장 높은 순위를 할당합니다.
  • first: 데이터 포인트가 DataFrame 또는 Series에 나타나는 순서대로 순위를 할당합니다.
  • dense: min과 유사하지만 집합 간 순위가 +1 씩만 증가합니다.

이를 예제와 함께 설명해 보겠습니다.

import pandas as pd
 
# Sample DataFrame
df = pd.DataFrame({'A': [1, 2, 2, 3, 4],
                   'B': [5, 6, 7, 8, 8],
                   'C': [9, 10, 10, 11, 12]})
 
# Applying rank
df['A_rank'] = df['A'].rank(method='min')
df['B_rank'] = df['B'].rank(method='max')
df['C_rank'] = df['C'].rank(method='dense')
 
print(df)

Mastering Rank Parameters

Rank 함수의 매개변수를 이해하는 것이 데이터를 정확하게 처리하는 데 중요합니다. 여기 몇 가지 필수적인 매개변수가 있습니다.

  • axis: 기본값은 0이며, 이는 행별로 랭킹이 지정됨을 의미합니다. 열별로 랭킹을 지정하려면 axis=1로 설정하세요.
  • numeric_only: 기본값은 True이며, 이는 숫자열만 순위를 지정합니다. False로 설정하면 문자열도 순위를 지정합니다.
  • pct: 기본값은 False입니다. True로 설정하면 랭크를 0에서 1 사이로 정규화합니다.

그룹별 Rank 활용

groupby() 함수와 함께 .rank()를 집계 함수로 사용할 수도 있습니다. 이를 통해 DataFrame 내 각 하위 그룹마다 특정 랭크를 계산할 수 있습니다.

간단한 예제를 살펴보죠.

import pandas as pd
 
# Sample DataFrame
df = pd.DataFrame({'Group': ['A', 'B', 'A', 'B', 'A', 'B'], 'Value': [20, 25, 15, 18, 22, 24]})
 
# Applying groupby and rank
df['Value_rank'] = df.groupby('Group')['Value'].rank(ascending=False)
 
print(df)

이 코드 스니펫에서는 먼저 DataFrame을 'Group'으로 그룹화한 다음, 각 그룹 내 'Value'의 랭크를 계산합니다.

Pandas Rank의 기능을 활용하여 데이터 분석 작업을 간소화할 수 있습니다. 노력하면 이러한 기능을 효과적인 데이터 조작에 사용할 수 있는 숙련된 전문가가 될 수 있습니다. 이 도구를 마스터하는 것은 단기 여행이 아닌 단계적인 프로세스입니다.