我有一个数据行,其中包含人的名字。
现在我想按名称而不是字母顺序而是给定顺序对数据框进行排序。因此,例如,我想按以下顺序在名称行上排序数据框:

L = ['marc','paul','beck','julia','rest']


如果我有一个数据行,其中包含一行名称,那么我想让marc在顶部,然后是paul,beck等。

我如何在python中做到这一点?

最佳答案

如果需要按列对数据进行重新排序,请将所有值转换为ordered categoricals,因此可能是sort_values

df = pd.DataFrame({'A':['paul','paul','julia','marc','paul','beck','beck','julia']})

L = ['marc','paul','beck','julia','rest']

df['A'] = pd.CategoricalIndex(df['A'], ordered=True, categories=L)

df = df.sort_values('A')
print (df)
       A
3   marc
0   paul
1   paul
4   paul
5   beck
6   beck
2  julia
7  julia

07-24 15:34