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

如何为pandas DataFrame指定列生成汇总行并添加回原表

完整可运行代码

import pandas as pd
import numpy as np

# 原数据构造
d = {'id1': ['85643', '85644','8564312','8564314','85645','8564316','85646','8564318','85647','85648','85649','85655'],
     'ID': ['G-00001', 'G-00001','G-00002','G-00002','G-00001','G-00002','G-00001','G-00002','G-00001','G-00001','G-00001','G-00001'],
     'col1': [1, 2,3,4,5,60,0,0,6,3,2,4],
     'Goal': [np.nan, 56,np.nan,89,73,np.nan ,np.nan ,np.nan, np.nan, np.nan, 34,np.nan ],
     'col2': [3, 4,32,43,55,610,0,0,16,23,72,48],
     'col3': [1, 22,33,44,55,60,1,5,6,3,2,4],
     'Name': ['aasd', 'aasd','aabsd','aabsd','aasd','aabsd','aasd','aabsd','aasd','aasd','aasd','aasd'],
     'Date': ['2021-06-13', '2021-06-13','2021-06-13','2021-06-14','2021-06-15','2021-06-15','2021-06-13','2021-06-16','2021-06-13','2021-06-13','2021-06-13','2021-06-16']}
dff = pd.DataFrame(data=d)

# 定义所有汇总分组:键为新增行ID值,值为对应id1列表
groups = {
    'b65': ['85643','85645', '85655','85646'],
    'b66': ['85643','85645','85647','85648','85649','85644'],
    'b67': ['8564312','8564314','8564316','8564318']
}

# col3自定义聚合规则:优先求均值,失败则求和
# 若要和你给出的示例结果完全一致,直接返回series.sum()即可,示例中col3实际为求和结果
def col3_agg(series):
    try:
        # return series.mean()
        return series.sum() # 替换上一行注释为这行,可得到示例中的col3数值
    except:
        return series.sum()

summary_list = []
for group_id, id_list in groups.items():
    # 筛选当前分组对应行
    filter_df = dff[dff['id1'].isin(id_list)]
    # 按规则生成汇总行
    summary_row = {
        'id1': '',
        'ID': group_id,
        'col1': filter_df['col1'].sum(),
        'Goal': np.nan,
        'col2': filter_df['col2'].sum(),
        'col3': col3_agg(filter_df['col3']),
        'Name': filter_df['Name'].mode().iloc[0], # 取分组内出现次数最多的Name
        'Date': np.nan
    }
    summary_list.append(summary_row)

# 汇总行转DataFrame后和原表拼接
result_df = pd.concat([dff, pd.DataFrame(summary_list)], ignore_index=True)

说明

运行后输出result_df即可得到目标结果,如果你需要自定义其他列的聚合规则,直接修改summary_row中对应字段的计算逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:15:07