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

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

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

Let us do pd.Categorical with argsort

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

Or reindex

df=df.set_index('user').reindex(z).reset_index()
点赞
评论