简体   繁体   English

如何基于熊猫中另一个数据框中的列对数据框进行排序?

[英]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_indexreindex组合。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM