정렬, 순위 매기기, 재인덱싱
실제 데이터셋은 분석하기에 알맞은 순서로 정리돼 있는 경우가 드뭅니다.
원하는 형태로 데이터를 재배치하거나 우선순위를 파악하기 위해서는 정렬(sorting)
, 순위 매기기(ranking)
, 재인덱싱(reindexing)
같은 기능이 필요합니다.
Pandas는 이런 작업을 직관적이고 간단하게 처리할 수 있는 다양한 메서드를 제공합니다.
예를 들어, 특정 열을 기준으로 오름차순/내림차순 정렬하거나, 각 행의 순위를 계산하고, 새로운 인덱스 구조를 설정하는 것이 가능합니다.
이번 수업에서는 이러한 기능을 활용해 데이터를 원하는 형태로 재배치하는 방법을 배워보겠습니다.
값 정렬하기
.sort_values()
를 사용하면 하나 이상의 열을 기준으로 DataFrame을 정렬할 수 있습니다.
점수 기준 정렬
data = { "Name": ["Alice", "Bob", "Charlie"], "Score": [85, 90, 78] } df = pd.DataFrame(data) df.sort_values(by="Score", ascending=False) # 출력: # Name Score # 1 Bob 90 # 0 Alice 85 # 2 Charlie 78
이를 통해 상위 점수자, 가장 이른 날짜, 최저가 등을 쉽게 찾을 수 있습니다.
데이터 순위 매기기
값에 순위를 매기려면 .rank()
를 사용합니다. 각 값에 순위 번호를 부여하고 동점도 자동으로 처리합니다.
점수 순위 매기기
df["점수"].rank(ascending=False) # 출력: # 0 2.0 # 1 1.0 # 2 3.0 # Name: Score, dtype: float64
이러한 기능은 리더보드나 백분위 기반 그룹화에 유용합니다.
행 재인덱싱
재인덱싱은 .reindex()
로 행의 순서를 초기화하거나 원하는 순서로 맞출 수 있도록 합니다.
인덱스로 행 재배열
df.reindex([2, 0, 1]) # 출력: # Name Score # 2 Charlie 78 # 0 Alice 85 # 1 Bob 90
이를 통해 데이터셋의 인덱스를 맞추거나 원하는 순서의 뷰를 만들 수 있습니다.
요약
기능 | 메서드 | 목적 |
---|---|---|
행 정렬 | sort_values() | 열 값을 기준으로 행 순서를 정렬 |
순위 부여 | rank() | 값에 순위 번호 부여 |
행 재정렬 | reindex() | 사용자 지정 행 인덱스 순서 설정 |
Quiz
0 / 1
사용자 지정 인덱스를 기준으로 DataFrame의 행을 재정렬하려면 어떤 메서드를 사용하나요?
.sort_values()
.rank()
.reindex()
.groupby()
학습 자료
AI 튜터
디자인
업로드
수업 노트
즐겨찾기
도움말