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

Pandas如何合并两个DataFrame 仅聚合指定列、新行直接拼接?

实现方案

可以一行代码完成需求,代码如下:

import pandas as pd
# 一行实现逻辑
res = pd.concat([df1, df2]).groupby(level=0).agg({'prices': sum, 'Type': 'first'})

逻辑说明

  • 先调用pd.concat([df1, df2])将两个表按行拼接,df1放在前面保证后续非聚合列优先取df1的取值
  • 用groupby(level=0)按行索引(也就是name列)分组
  • 聚合规则中:
    • prices列用sum聚合,Python中列表相加天然就是拼接两个列表,刚好符合合并要求
    • 其余列(这里是Type)用'first'取分组内第一个出现的值,也就是df1中的对应值

如果你的表中非prices列数量较多不想手动逐个指定,可以用更通用的写法:

res = pd.concat([df1, df2]).groupby(level=0).agg(
    {**{'prices': sum}, **{col: 'first' for col in df1.columns if col != 'prices'}}
)

运行上述代码得到的结果和你要求的输出完全一致。

内容的提问来源于stack exchange,提问作者Lew Wei Hao

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:36:04