Skip to main content
 首页 » 编程设计

Python之更改列名、合并和重新排序数据框

2025年05月04日20hnrainll

我有两个 DataFrame - DataFrameA 和 DataFrameB

DataFrameA

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

数据框B

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

我想要一个这样的输出DataFrame,

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

数据框架

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 

我在 DataFrame A 和 DataFrame B 之间进行内部连接,然后按顺序对列进行排序。

DataFrameA 和 DataFrameB 是 Pandas 数据框。所以更喜欢 pandas 方法。

请您参考如下方法:

使用

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]))