熊猫基于列表对行进行自定义排序

时间:2020-05-09 14:12:39

标签: python pandas

给出一个数据框和一个列表,以及一个数据框的一列的值。 (列表相等,只要数据框的行和每个值恰好显示为一) 如何根据列表中的顺序对数据框中的行进行排序?

import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'], 
                   'income': [40000, 50000, 42000]})
z = ["Jane", "Alice", "Bob"]

1 个答案:

答案 0 :(得分:1)

让我们对pd.Categoricalargsort

df=df.iloc[pd.Categorical(df.user,z).argsort()]
df
    user  income
1   Jane   50000
2  Alice   42000
0    Bob   40000

reindex

df=df.set_index('user').reindex(z).reset_index()