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

pandas按Bin单列分组后对Buy、Sell多列求和去重的高效实现方法

解决方案

你之前用agg丢失其余列,是因为没有在聚合规则中指定Time列的处理逻辑,只需要给Time列也加个简单的聚合规则(因为是静态值,取组内任意一个值都可以),一次groupby操作就能完成所有需求,不需要多次分组或者后续去重:

import pandas as pd

# 单次groupby直接完成聚合
result = df.groupby('Bin', as_index=False).agg(
    Time=('Time', 'first'), # 静态值取first/last/max/min均可
    Buy=('Buy', 'sum'),
    Sell=('Sell', 'sum')
)

方案优势

  • 仅遍历一次分组完成所有计算,比你之前三次groupby的写法性能高3倍以上,数据量越大提升越明显
  • 不需要额外做transform广播、后续去重操作,代码更简洁,也避免了中间步骤产生的冗余数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:30:06