根据来自另一个熊猫数据框的列的排序对列进行排序

时间:2019-01-08 13:37:06

标签: python pandas dataframe

我有一个这样的数据框:

 df1:
 col1    col2 
  P        1
  Q        3
  M        2

我还有另一个数据框:

df2:
col1      col2
 Q         1
 M         3
 P         9

我想根据df1的col1的顺序对df2的col1进行排序。因此,最终的数据帧将如下所示:

 df3:
 col1     col2
  P         1
  Q         3
  M         9

如何使用熊猫或其他有效方法来做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以使用set_indexcol1设置为df2的索引,并使用.locdf1.col11设置为数据帧的索引:

df2.set_index('col1').loc[df1.col1].reset_index()

   col1  col2
0    P     9
1    Q     1
2    M     3

或者如@jpp建议的那样,您也可以使用.reindex代替.loc

df2.set_index('col1').reindex(df1.col1).reset_index()