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

按指定列分组并按列求和,实现每组一行的DataFrame处理

解决Pandas按多列分组并对药物列求和的问题

原始DataFrame结构

IDconception_datebirth_datemed_1med_2med_3med_4...med_n
Axxxxxxxx1000...
Axxxxxxxx0100...
Axxxxxxxx0010...
Bxxxxxxxx1000...
Bxxxxxxxx0100...
Bxxxxxxxx0010...
Bxxxxxxxx0001...
Cxxxxxxxx1000...
Cxxxxxxxx0001...

需求说明

按ID、conception_date、birth_date三列分组,将每个分组内的所有药物列(med_1至med_n)按列求和,最终每个分组对应一行数据。

解决方案

使用Pandas的groupby方法指定分组键,再调用sum()对数值列求和即可,核心代码如下:

import pandas as pd

# 假设你的DataFrame名为df
result_df = df.groupby(['ID', 'conception_date', 'birth_date']).sum().reset_index()

代码解释

  1. 分组键指定:groupby(['ID', 'conception_date', 'birth_date']) 会将这三列值完全相同的行归为同一组。
  2. 求和操作:sum() 会自动对分组内所有数值类型的列(即所有med_*列)执行求和,分组列会作为结果的索引。
  3. 重置索引:reset_index() 将分组列从索引转回普通列,得到符合需求的结构化结果。

处理后DataFrame结构

IDconception_datebirth_datemed_1med_2med_3med_4...med_n
Axxxxxxxx1110...
Bxxxxxxxx1111...
Cxxxxxxxx1001...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 20:05:20