我有两个数据框-DataFrameA和DataFrameB

数据框

ID   ColA  ColB  ColC
1    12    23    40
2    21    24    45
3    23    31    50


数据框

ID   ColA  ColB  ColC
1    21    23    40
2    20    44    45
3    29    51    70
4    49    51    70


我想要这样的输出DataFrame,

在变量=“ BBBBB”中声明的DataFrame B列的前缀

数据框

ID  ColA    BBBBB.ColA  ColB    BBBBB.ColB  ColC    BBBBB.ColC
1   12       21         23       23          40      40
2   21       20         24       44          45      45
3   23       29         31       51          50      70


我正在数据框架A和数据框架B之间进行内部联接,然后按顺序对列进行排序。

DataFrameA和DataFrameB是熊猫数据帧。因此,首选熊猫方法。

最佳答案

使用

yourdf=dfa.merge(dfb.add_prefix('BBBBB.'),left_on='ID',right_on='BBBBB.ID')
yourdf
Out[219]:
   ID  ColA  ColB     ...      BBBBB.ColA  BBBBB.ColB  BBBBB.ColC
0   1    12    23     ...              21          23          40
1   2    21    24     ...              20          44          45
2   3    23    31     ...              29          51          70
[3 rows x 8 columns]


如果需要重新订购

yourdf.reindex(columns=sorted(yourdf.columns,key=lambda x : x.split('.')[-1]))

关于python - Python-更改列名称,合并和重新排序数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54352837/

10-11 19:37
查看更多