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

Pandas DataFrame按id分组10秒重采样并返回采样起止时间的实现

你可以通过resample搭配多聚合函数agg()同时计算value总和、窗口内最小/最大时间,以下是修改后的完整代码:

import pandas as pd
df = pd.read_csv('df.csv')
df['date'] = pd.to_datetime(df['date'])
# 分组后按10秒重采样,同时计算三个指标
df_resampled = df.groupby('id').resample('10s', on='date').agg(
    value=('value', 'sum'),
    start_time=('date', 'min'),
    end_time=('date', 'max')
).reset_index()
# 过滤空窗口、重命名列名、排序
df = df_resampled[df_resampled['value'] != 0].rename(columns={
    'start_time':'start-time',
    'end_time':'end-time'
}).sort_values(['date'])
# 输出csv格式结果
print(df.to_csv(index=False))

核心修改说明

  • 去掉原有set_index('date')逻辑,改用resample的on参数指定时间列,保留原始date列用于计算窗口内的实际起止时间
  • 通过agg()同时定义三类聚合规则:value列求和、date列取最小值作为窗口最早时间、date列取最大值作为窗口最晚时间
  • 最终输出字段、数值完全匹配你提供的预期结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 05:51:03