from random import randint
import pandas as pd
days = ["Tuesday", "Thursday", "Monday", "Wednesday"]
df = pd.DataFrame({"Value": [randint(0, 9) for i in range(len(days)*2)]},
index=[day for day in days for i in range(2)])
myorder = ["Monday", "Tuesday", "Wednesday", "Thursday"]
具体订单如清单myorder所通知
解决方法:
使用CategoricalIndex
sort_index
:
df.index = pd.CategoricalIndex(df.index, categories=myorder, ordered=True)
df = df.sort_index()
print (df)
Value
Monday 3
Monday 3
Tuesday 4
Tuesday 3
Wednesday 3
Wednesday 4
Thursday 5
Thursday 2