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

如何对除指定列外其余列均相同的两个DataFrame的指定列求和?

没问题,我来帮你搞定这个需求!既然两个DataFrame除了要加和的col1列之外,其他列内容完全一致,那我们可以直接对目标列做元素级加法,再结合共享列生成结果就行。

对两个DataFrame指定列求和的实现方案

完整代码示例

import pandas as pd
import numpy as np

# 初始化示例中的两个DataFrame
df1 = pd.DataFrame({'col1': [3.2, 4.4, 6.5, np.NaN], 'col2': [1.2, 2.2, np.NaN, 5.7]})
df2 = pd.DataFrame({'col1': [1.0, 2.0, 3.0, 4.0], 'col2': [1.2, 2.2, np.NaN, 5.7]})

# 对指定列col1求和,同时保留完全一致的共享列col2
result_df = pd.DataFrame({
    'col1_sum': df1['col1'] + df2['col1'],
    'col2': df1['col2']  # 因为两个df的col2完全一致,取df1或df2的都可以
})

print(result_df)

运行输出结果

col1_sum  col2
0       4.2   1.2
1       6.4   2.2
2       9.5   NaN
3       NaN   5.7

补充说明

  • Pandas的Series支持直接元素级运算,这里df1['col1'] + df2['col1']会自动对应行相加,遇到NaN时结果也会是NaN,符合常规数值运算逻辑。
  • 如果需要对多列求和,可以用循环批量处理,比如:
# 假设要对col1、col3这两列求和
sum_cols = ['col1', 'col3']
result_df = pd.DataFrame()

# 批量生成求和列
for col in sum_cols:
    result_df[f'{col}_sum'] = df1[col] + df2[col]

# 把所有共享列添加到结果中
shared_cols = [col for col in df1.columns if col not in sum_cols]
result_df[shared_cols] = df1[shared_cols]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:24:09