포괄적인 가이드: 효과적으로 Pandas Rank 사용하는 방법
Published 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) |
---|---|---|
(opens in a new tab) | (opens in a new tab) | (opens in a new tab) |
Pandas Rank의 개념 이해
Pandas Rank는 데이터 포인트의 랭크를 데이터 세트 내에서 계산합니다. 이 함수는 정렬, 필터링 또는 데이터 세트 내에서 구체적인 위치를 식별하는 데 매우 유용합니다. 기본적으로 다음의 두 가지 방법으로 사용할 수 있습니다.
- 전체 DataFrame 내에서 데이터 랭킹.
- 그룹 단위로 데이터 랭킹을 수행하여 특정 서브그룹 내에서 데이터 랭킹.
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의 기능을 활용하여 데이터 분석 작업을 간소화할 수 있습니다. 노력하면 이러한 기능을 효과적인 데이터 조작에 사용할 수 있는 숙련된 전문가가 될 수 있습니다. 이 도구를 마스터하는 것은 단기 여행이 아닌 단계적인 프로세스입니다.