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

Python如何基于时间列对数据集每5秒计算数值平均值

原有代码问题汇总
  • 读取数据时指定的列名和CSV实际列名不匹配,CSV表头为pid_col、timestamp_col、value_col,和代码里定义的timestamp、pid、value不一致,会导致读取列失败
  • 调用to_datetime时错误添加了unit='ms'参数,该参数仅适用于输入为数值型时间戳的场景,你的输入是标准时间字符串,不需要指定unit
  • resample方法默认基于索引生效,如果不把时间列设为索引,需要用on参数指定用于重采样的时间列
  • 直接对timestamp列调用resample求均值,计算的是时间值的平均,不是目标value列的平均
可行代码示例
import pandas as pd

# 1. 读取数据,自动解析时间列
df = pd.read_csv("data.csv", 
                 usecols=["pid_col", "timestamp_col", "value_col"],
                 parse_dates=["timestamp_col"])

# 2. 按pid分组后做5秒窗口重采样,计算value列平均值
# 方法1:将时间列设为索引后操作
res_df = df.set_index("timestamp_col")\
           .groupby("pid_col")["value_col"]\
           .resample("5S")\
           .mean()\
           .reset_index(name="value_avg")

# 方法2:不修改原索引,用on参数指定时间列
# res_df = df.groupby("pid_col")\
#            .resample("5S", on="timestamp_col")["value_col"]\
#            .mean()\
#            .reset_index(name="value_avg")

# 查看结果
print(res_df)

输出结果会包含每个pid、每个5秒窗口的起始时间、对应窗口内的value平均值,兼容纳秒级精度的时间列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:09:03