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

基于Group ID与两数据集总和差值批量插入行的技术求助

解决方案:生成差值行并追加到数据集A

Python(Pandas)实现

import pandas as pd

# 模拟数据集A
data_a = pd.DataFrame({
    'Group': ['A', 'A', 'A', 'A', 'A', 'Total'],
    'Sum': [1, 3, 4, 1, 2, 11]
})

# 模拟数据集B
data_b = pd.DataFrame({
    'Group': ['A', 'A', 'A', 'A', 'A', 'Total'],
    'Sum': [5, 2, 3, 5, 5, 20]
})

# 计算Group A的实际总和(排除Total汇总行)
sum_a = data_a[data_a['Group'] != 'Total']['Sum'].sum()
sum_b = data_b[data_b['Group'] != 'Total']['Sum'].sum()

# 得到需要追加的行数
diff = sum_b - sum_a

# 生成待追加的行数据
new_records = pd.DataFrame({
    'Group': ['A'] * diff,
    'Sum': [1] * diff
})

# 合并原数据集与新行,得到最终结果
final_data = pd.concat([data_a, new_records], ignore_index=True)

print(final_data)

SQL(MySQL)实现

-- 计算两个数据集Group A的总和差值
SET @sum_a = (SELECT SUM(Sum) FROM data_a WHERE `Group` = 'A');
SET @sum_b = (SELECT SUM(Sum) FROM data_b WHERE `Group` = 'A');
SET @diff = @sum_b - @sum_a;

-- 通过递归CTE生成对应数量的行
WITH RECURSIVE append_rows AS (
    SELECT 1 AS row_num
    UNION ALL
    SELECT row_num + 1 FROM append_rows WHERE row_num < @diff
)

-- 将生成的行插入到data_a表中
INSERT INTO data_a (`Group`, `Sum`)
SELECT 'A', 1 FROM append_rows;

说明:如果你的Total行是手动添加的固定值,上述代码会保留该行并直接追加新记录;如果需要更新Total值,可在追加后重新计算并替换该行的Sum值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:20:39