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

如何将多个Pandas DataFrame的求和结果分别追加到目标df_sum?

实现DataFrame求和结果批量追加的方案

核心逻辑

针对每个源DataFrame计算指定列的总和,将数据源名称与求和结果组成新行,统一追加到目标DataFramedf_sum中。

方法1:逐个处理(直观易懂)

适合数据源数量较少的场景,直接对每个DataFrame单独计算并追加:

# 处理df_A
sum_a = df_A[["Column2", "Column3"]].sum()
df_sum = df_sum.append(
    {"Source": "df_A", "Column2_SUM": sum_a["Column2"], "Column3_SUM": sum_a["Column3"]},
    ignore_index=True
)

# 处理df_B
sum_b = df_B[["Column2", "Column3"]].sum()
df_sum = df_sum.append(
    {"Source": "df_B", "Column2_SUM": sum_b["Column2"], "Column3_SUM": sum_b["Column3"]},
    ignore_index=True
)

# 处理df_C
sum_c = df_C[["Column2", "Column3"]].sum()
df_sum = df_sum.append(
    {"Source": "df_C", "Column2_SUM": sum_c["Column2"], "Column3_SUM": sum_c["Column3"]},
    ignore_index=True
)

# 处理df_D
sum_d = df_D[["Column2", "Column3"]].sum()
df_sum = df_sum.append(
    {"Source": "df_D", "Column2_SUM": sum_d["Column2"], "Column3_SUM": sum_d["Column3"]},
    ignore_index=True
)

方法2:批量循环处理(高效简洁)

如果后续可能新增数据源,用字典存储所有源DataFrame,通过循环批量处理更易维护:

# 将所有源DataFrame存入字典,键为数据源标识,值为对应DataFrame
source_dfs = {"df_A": df_A, "df_B": df_B, "df_C": df_C, "df_D": df_D}

# 遍历字典完成计算与追加
for source_name, df in source_dfs.items():
    col_sums = df[["Column2", "Column3"]].sum()
    df_sum = df_sum.append(
        {
            "Source": source_name,
            "Column2_SUM": col_sums["Column2"],
            "Column3_SUM": col_sums["Column3"]
        },
        ignore_index=True
    )

兼容pandas 2.0+的替代方案

由于pandas 2.0及以上版本已弃用append()方法,可改用pd.concat()实现:

source_dfs = {"df_A": df_A, "df_B": df_B, "df_C": df_C, "df_D": df_D}
new_rows = []

for source_name, df in source_dfs.items():
    col_sums = df[["Column2", "Column3"]].sum()
    # 生成单个结果行的DataFrame
    row_df = pd.DataFrame({
        "Source": [source_name],
        "Column2_SUM": [col_sums["Column2"]],
        "Column3_SUM": [col_sums["Column3"]]
    })
    new_rows.append(row_df)

# 合并原df_sum与所有新行
df_sum = pd.concat([df_sum] + new_rows, ignore_index=True)

关键注意点

  • 确保所有源DataFrame都包含Column2和Column3列,否则会触发KeyError
  • 使用ignore_index=True可以避免追加后出现重复索引的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:10:19