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

如何在Python DataFrame中按id、日期、时间对数值求和汇总?

按id、日期、时间分组求和的实现方法

你可以通过Pandas的groupby结合sum()方法快速实现需求,具体步骤如下:

1. 构造原数据(你提供的代码)

import pandas as pd
df = pd.DataFrame()
df['id'] = [1, 1, 1, 2, 2,3, 3]
df['day'] = ['2013-07-10', '2013-07-10', '2013-07-10','2014-02-27','2014-02-27', '2014-02-27', '2014-02-27']
df['time'] = ['17:00:00', '17:00:00', '18:30:00','18:30:00','18:30:00', '06:30:00', '06:30:00' ]
df['val'] = [1, 5,9,2,5,8,5]

2. 分组求和代码

# 按id、day、time分组,对val列求和,重置索引恢复列结构
result_df = df.groupby(['id', 'day', 'time'])['val'].sum().reset_index()

3. 输出结果

执行上述代码后,result_df的内容与你期望的输出一致:

id         day      time  val
0   1  2013-07-10  17:00:00    6
1   1  2013-07-10  18:30:00    9
2   2  2014-02-27  18:30:00    7
3   3  2014-02-27  06:30:00   13

代码说明

  • groupby(['id', 'day', 'time']):指定以这三列的组合作为分组依据,相同组合的行会被归为一组
  • ['val'].sum():仅对val列执行求和操作,避免其他列被不必要的聚合
  • reset_index():将分组时作为索引的id、day、time重新转为普通列,保证输出结构符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:45:48