[英]How to sort dataframe based on a column in another dataframe in Pandas?
Say I have two dataframes, df1 and df2 in the picture above. 假设我在上图中有两个数据帧df1和df2。 I want to sort the df1 based on the Col2 of df2. 我想根据df2的Col2对df1进行排序。
So the end result of the df1 should look like the third dataframe in the picture, where the Col2 is in the same values, order in df2. 因此,df1的最终结果应该看起来像图片中的第三个数据帧,其中Col2的值相同,以df2的顺序排列。
You can use combination of set_index
and reindex
for this. 您可以set_index
使用set_index
和reindex
组合。
Try this code : 试试这个代码:
df1 = pd.DataFrame({'Col1': ['a','b','c','d','e'], 'Col2':
['chocolate','chicken','pizza','icecream','cake'] })
Out :
Col1 Col2
0 a chocolate
1 b chicken
2 c pizza
3 d icecream
4 e cake
df2 = pd.DataFrame({'Col1': ['f','g','h','i','j'], 'Col2': ['chicken','cake','icecream','chocolate','pizza'] })
Out :
Col1 Col2
0 f chicken
1 g cake
2 h icecream
3 i chocolate
4 j pizza
df1 = df1.set_index('Col2')
df1 = df1.reindex(index=df2['Col2'])
df1 = df1.reset_index()
Out :
Col2 Col1
0 chicken b
1 cake e
2 icecream d
3 chocolate a
4 pizza c
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.