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

使用Pandas Grouper时如何获取时段结束时间戳

获取Pandas Grouper分组后的时段结束时间

刚好之前处理过类似的需求,用Pandas的Grouper分组后获取时段结束时间其实有两种常用思路,结合你的示例数据给你一步步说明:

第一步:确保时间列是datetime类型

首先得把你的Energy列转换成Pandas的datetime格式,不然分组会出错,代码如下:

import pandas as pd

# 构造示例DataFrame(还原你的数据结构)
data = {
    'week': [1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161],
    'Energy': ['2018-01-09 00:00:00', '2018-01-09 00:10:00', '2018-01-09 00:20:00',
               '2018-01-09 00:30:00', '2018-01-09 00:40:00', '2018-01-09 00:50:00',
               '2018-01-09 01:00:00', '2018-01-09 01:10:00', '2018-01-09 01:20:00',
               '2018-01-09 01:30:00'],
    'None': ['None']*10,
    'Value': [0.0, 0.0, 104.0, 104.04908, 0.0, 0.0, 46.428571, 0.0, 0.0, 113.846154]
}
df = pd.DataFrame(data)

# 转换时间列为datetime类型
df['Energy'] = pd.to_datetime(df['Energy'])

方法一:获取分组内实际的最后一条记录时间戳

如果你的需求是拿到每个分组里实际存在的最晚时间(比如00:00-01:00时段里最后一条数据是00:50,就取这个时间),可以直接用agg方法结合max函数:

# 按小时分组,同时获取时段结束时间(分组内最大的时间戳)和Value的总和
result = df.groupby(pd.Grouper(key='Energy', freq='H')).agg(
    时段结束时间=('Energy', 'max'),
    总价值=('Value', 'sum')
).reset_index()

print(result)

输出结果:

Energy           时段结束时间        总价值
0 2018-01-09 00:00:00 2018-01-09 00:50:00  208.049080
1 2018-01-09 01:00:00 2018-01-09 01:30:00  160.274725

这里的Energy列是分组的起始时间,时段结束时间就是该分组内所有时间戳里的最大值。

方法二:获取严格的时段边界结束时间

如果需要的是理论上的时段结束时间(比如00:00-01:00时段的结束时间是01:00:00,不管有没有这个时间点的数据),可以通过分组起始时间加上分组频率的时长来计算:

# 先按小时分组计算Value的总和
result = df.groupby(pd.Grouper(key='Energy', freq='H'))['Value'].sum().reset_index()

# 计算严格的时段结束时间:起始时间 + 1小时
result['严格时段结束时间'] = result['Energy'] + pd.Timedelta(hours=1)

print(result)

输出结果:

Energy        总价值     严格时段结束时间
0 2018-01-09 00:00:00  208.049080 2018-01-09 01:00:00
1 2018-01-09 01:00:00  160.274725 2018-01-09 02:00:00

如果你的分组频率不是小时(比如30分钟),只需要把pd.Timedelta(hours=1)改成对应的时长即可,比如pd.Timedelta(minutes=30)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:14:53