예제:
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:
지점은 관악점, 양재점, 서초점의 순서이나 제품은 각 지점별로 콜라-> 사이다-> 환타 순으로 정렬되었습니다.
'판다스 > 판다스 팁' 카테고리의 다른 글
[pandas] 문자열에서 정규 표현식으로 그룹을 활용하는 방법 (0) | 2024.02.27 |
---|---|
[pandas] 각 열을 고윳값의 순서대로 정렬하기 (0) | 2024.02.20 |
[pandas] 멀티 인덱스의 각 레벨의 유일 값 찾기 (0) | 2024.02.20 |
[pandas] 멀티 인덱스에서 두 번째 레벨의 값으로 인덱싱하는 방법 (0) | 2024.02.20 |
[pandas] 멀티 인덱스인 열을 가지고 있을 때 subtotal 열 만들기 (0) | 2024.02.20 |