如何根据Pandas中另一个数据框中的列对数据框进行排序?

时间:2017-08-08 19:40:34

标签: python pandas

enter image description here

假设我在上图中有两个数据帧,df1和df2。 我想根据df2的Col2对df1进行排序。

因此df1的最终结果应该看起来像图中的第三个数据帧,其中Col2的值相同,df2的顺序。

1 个答案:

答案 0 :(得分:4)

您可以将set_indexreindex组合使用。

试试这段代码:

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