Skip to main content
 首页 » 编程设计

python之通过取列之间的平均值合并 Pandas 中的两个数据框

2025年05月04日24lori

我有以下数据框:

df1

          C1    C2     C3 
    0     0     0      0 
    1     0     0      0 

df2

          C1    C4     C5 
    0     1     1      1 
    1     1     1      1 

我要找的结果是:

df3

          C1    C2     C3    C4    C5 
    0     0.5    0      0     1     1 
    1     0.5    0      0     1     1 

有没有简单的方法可以做到这一点?

提前致谢!

请您参考如下方法:

您可以使用 concat 和 groupby axis =1

s=pd.concat([df1,df2],axis=1) 
s.groupby(s.columns.values,axis=1).mean() 
Out[116]:  
    C1   C2   C3   C4   C5 
0  0.5  0.0  0.0  1.0  1.0 
1  0.5  0.0  0.0  1.0  1.0 

@cᴏʟᴅsᴘᴇᴇᴅ的一个不错的替代品

s.groupby(level=0,axis=1).mean() 
Out[117]:  
    C1   C2   C3   C4   C5 
0  0.5  0.0  0.0  1.0  1.0 
1  0.5  0.0  0.0  1.0  1.0