Pandas 根据category自定义排序
import pandas as pd
df = pd.DataFrame({"name": [*'abcde'], "num": [2, 1, 3, 6, 8]})
print(df)
name num
0 a 2
1 b 1
2 c 3
3 d 6
4 e 8
将name 按照 [‘b’, ‘a’, ‘c’, ‘e’, ‘d’] 排序
# 定义一个目标的顺序list
lst_sorted = ['b', 'a', 'c', 'e', 'd']
# 将字符串的列改成`category`类型, 并修改其categories顺序
df["name"] = df["name"].astype('category').cat.set_categories(lst_sorted)
# 按照category列, 排序
df = df.sort_values(by='name')
print(df)
name num
1 b 1
0 a 2
2 c 3
4 e 8
3 d 6