본문으로 건너뛰기
실습하기

정렬, 순위 매기기, 재인덱싱

실제 데이터셋은 분석하기에 알맞은 순서로 정리돼 있는 경우가 드뭅니다.

원하는 형태로 데이터를 재배치하거나 우선순위를 파악하기 위해서는 정렬(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()사용자 지정 행 인덱스 순서 설정

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!