Skip to main content
 首页 » 编程设计

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

2025年05月04日13cyq1162

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

所以 df1 的最终结果应该看起来像图片中的第三个数据帧,其中 Col2 具有相同的值,在 df2 中排序。

请您参考如下方法:

为此,您可以结合使用 set_index 和 reindex。

试试这段代码:

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