You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中合并两个DataFrame并对共列取均值?

当然有超简便的方法实现这个需求!用 pandas 的内置方法就能一行代码搞定,核心思路是先把两个 DataFrame 按索引堆叠,再对同一索引的行求平均值。

实现步骤

  1. 先构造你的两个 DataFrame(如果已经有了可以跳过这步):
import pandas as pd

df1 = pd.DataFrame({'C1': [0, 0], 'C2': [0, 0], 'C3': [0, 0]})
df2 = pd.DataFrame({'C1': [1, 1], 'C4': [1, 1], 'C5': [1, 1]})
  1. 一行代码生成目标结果:
df3 = pd.concat([df1, df2]).groupby(level=0).mean()

原理解释

  • pd.concat([df1, df2]):把两个 DataFrame 按行堆叠,这样每个索引(0 和 1)都会对应两行数据——一行来自 df1,一行来自 df2。
  • .groupby(level=0).mean():按索引分组,对每组的所有列计算平均值。对于 C2、C3 这类只在 df1 里有的列,以及 C4、C5 这类只在 df2 里有的列,分组后每组只有一个值,平均值就是它本身;而共同列 C1 每组有两个值(0 和 1),平均值正好是你想要的 0.5。

运行后得到的 df3 就是你期望的结果:

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

如果需要调整列的顺序,只需要用 df3 = df3[['C1', 'C2', 'C3', 'C4', 'C5']] 重新指定即可。

内容的提问来源于stack exchange,提问作者Vasil Yordanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:19:29