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

如何将pandas DataFrame中8Hz采样的时间序列数据重采样为16Hz?

亚秒级时间序列8Hz转16Hz重采样实现方案

前置操作:正确解析时间索引

大多数重采样失败的核心原因是时间列的亚秒部分没有被正确解析,需要显式指定格式匹配微秒:

import pandas as pd

# 解析时间列,%f 对应微秒部分
df['time'] = pd.to_datetime(df['time'], format='%Y-%m-%d %H:%M:%S.%f')
# 将时间列设为索引
df = df.set_index('time')

如果原始数据的时间戳存在轻微偏移,没有严格对齐8Hz的时间格,可以先做一次对齐操作:

# 8Hz对应采样间隔为125000微秒(1e6微秒/8)
df = df.resample('125000U').first()

上采样到16Hz

16Hz对应的采样间隔为62500微秒(1e6微秒/16),直接用该频率做重采样后插值补全缺失值即可,上采样常用线性插值,可根据业务需求替换为时间加权插值、样条插值等方法:

# 重采样到16Hz,线性插值补全
df_16hz = df.resample('62500U').interpolate(method='linear')

验证采样率

执行以下代码验证输出的采样率是否符合预期:

duration = (df_16hz.index[-1] - df_16hz.index[0]).total_seconds()
sample_rate = len(df_16hz) / duration
print(f"输出采样率:{sample_rate:.2f}Hz")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:48:02