본문 바로가기
판다스/판다스 팁

[pandas] 각 열을 고윳값의 순서대로 정렬하기

by 김판다t 2024. 2. 20.

예제:

 

import pandas as pd

data = {
    '지점': ['양재점', '관악점', '서초점', '관악점', '서초점', '양재점', '서초점', '양재점', '관악점'],
    '제품': ['콜라', '환타', '환타', '사이다', '콜라', '환타', '사이다', '사이다', '콜라'],
    '매출': [5000, 3000, 7000, 2000, 9000, 6000, 8000, 4000, 1000]
}

df = pd.DataFrame(data)

 

 

 

 

 

 

 

df의 지점 열의 고윳값의 순서인 양재점-> 관악점-> 서초점 순서로 정렬하고

지점 안에서 제품을 정렬할 때도 제품 열의 고윳값 순서인   콜라-> 환타-> 사이다 순으로 정렬합니다

 

 

 

# 카테고리 자료형을 활용해 정렬합니다.
out = df.sort_values(
    ['지점', '제품'], 
    key=lambda x: pd.Categorical(
        x, categories=df[x.name].unique(), ordered=True)
)
out