我有以下資料框:

保持 level2 (Checks, Check Avg, Checks, Check AVg 等)的順序的最佳方法是什么,但按升序對父級別的日期進行排序?
uj5u.com熱心網友回復:
添加sort_remaining=False到sort_index以防止低于指定的排序級別:
df = df.sort_index(level=0, axis=1, sort_remaining=False)
df:
Week 2021-10-11 2021-10-18 2021-10-25
Checks Check Avg Checks Check Avg Checks Check Avg
11th Street 4 5 2 3 0 1
16th Street 10 11 8 9 6 7
Bala Cynwyd 16 17 14 15 12 13
使用的樣本資料:
import numpy as np
import pandas as pd
df = pd.DataFrame(
np.arange(18).reshape((-1, 6)),
index=['11th Street', '16th Street', 'Bala Cynwyd'],
columns=pd.MultiIndex.from_arrays(
[np.repeat(pd.to_datetime(['2021-10-25', '2021-10-18', '2021-10-11']),
2),
['Checks', 'Check Avg'] * 3],
names=['Week', None]
)
)
df:
Week 2021-10-25 2021-10-18 2021-10-11
Checks Check Avg Checks Check Avg Checks Check Avg
11th Street 0 1 2 3 4 5
16th Street 6 7 8 9 10 11
Bala Cynwyd 12 13 14 15 16 17
uj5u.com熱心網友回復:
您可以sort_index在axis=1. 您可以指定每個級別的排序順序。
示例輸入:
a b c a c b a
X Y Z Y X Z Z X Y
0 - - - - - - - - -
排序:
df = df.sort_index(level=[0,1], ascending=[True, False], axis=1)
輸出:
a b c
Z Y X Z Y X Z Y X
0 - - - - - - - - -
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/350768.html
