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

Python Pandas:重复行求和与非数值列留首值的代码优化方案

宽DataFrame分组聚合优化方案

不用手动枚举几十列,直接通过列类型自动识别实现需求:

  • 指定你的外键列名(替换成实际列名,比如'order_id')
  • 自动筛选需保留首个实例的列:所有object/日期类型列,排除外键本身
  • 自动筛选需求和的列:所有float类型列
  • 组装聚合规则后执行分组操作

完整代码示例:

import pandas as pd

# 替换成你的外键列名
foreign_key = "your_foreign_key_col"

# 自动识别列:保留首值的列(object/日期类型,排除外键)
keep_first_cols = df.select_dtypes(include=["object", "datetime64"]).columns.drop(foreign_key)
# 自动识别求和列(float类型)
sum_cols = df.select_dtypes(include=["float64"]).columns

# 组装聚合规则字典
agg_rules = {col: "first" for col in keep_first_cols}
agg_rules.update({col: "sum" for col in sum_cols})

# 执行分组聚合,as_index=False让外键保持为普通列而非索引
final_df = df.groupby(foreign_key, as_index=False).agg(agg_rules)

补充说明:

  • 如果日期列是带时区的格式(比如datetime64[ns, UTC]),可以调整include里的类型参数,确保能被正确识别
  • 外键列在groupby后本身就是唯一值,无需额外配置保留首值规则
  • 该方案自动适配列类型,后续列数变动时无需修改代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:16:02