본문 바로가기
프로그래밍/Python 관련 정보

[Pandas] 사용자 정의 정렬하기

by 물박사의 저장공간 2025. 5. 16.

2025.02.24 - [프로그래밍/Python 관련 정보] - [Pandas] Table of Contents


대부분의 경우에는 크기 순, 알파벳 순 등으로 해주면 되는데 가끔은 내가 정의한 대로 해주어야 할 때도 있습니다. 저 같은 경우에는 데이터프레임에서 선형방정식 (행렬) 을 푸는데 행, 열의 위치를 그전 계산값의 정렬과 일치시켜주어야 했습니다. 

 

Pandas에서는 pd.categorical 자료형을 활용하는 게 가장 간단하다고 하는데요

import pandas as pd

# 예제 데이터
df = pd.DataFrame({
    'GC': ['A', 'B', 'C', 'D', 'B', 'A', 'C', 'D'],
    'Value': [10, 20, 30, 40, 15, 25, 35, 45]
})

# 사용자 정의 정렬 순서
custom_order = ['D', 'B', 'A', 'C']

# GC 칼럼을 카테고리형으로 바꾸고 정렬 우선순위 지정
df['GC'] = pd.Categorical(df['GC'], categories=custom_order, ordered=True)

# 정렬
df_sorted = df.sort_values('GC')

print(df_sorted)

 

이와 같은 방식으로 정렬을 잡아 줄 수 있습니다.