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

[pandas] 그룹내에서 정렬하기

by 김판다t 2024. 2. 20.

예제:

 

import numpy as np
import pandas as pd
data1 = {'지점' : ['관악점', '관악점', '관악점', '양재점', '양재점', '양재점', '서초점', 
                  '서초점', '서초점'], 
         '제품' : ['콜라', '사이다', '환타', '사이다', '콜라', '환타', '환타', '사이다', '콜라'], 
         '매출' : np.arange(1, 10) * 1000}
df = pd.DataFrame(data1)

 

 

 

 

 

 

 

지점의 정렬상태는 그대로 두고 제품만 콜라-> 사이다 -> 환타 순으로 정렬해 보겠습니다.

 

 

Category 데이터를 활용해 정렬 순서를 정할 수 있습니다.

 

# 정렬 순서 정하기
order = df['지점'].unique().tolist() + ['콜라', '사이다', '환타']

# sort_values의 key 매개변수로 카테고리를 활용한 정렬
out = df.sort_values(
    ['지점', '제품'], 
    key=lambda x: pd.Categorical(x, categories=order, ordered=True)
)

 

 

 

out:

 

 

 

지점은 관악점, 양재점, 서초점의 순서이나 제품은 각 지점별로 콜라-> 사이다-> 환타 순으로 정렬되었습니다.