【问题标题】:Increase Sampling rate on time-series data with Pandas使用 Pandas 提高时间序列数据的采样率
【发布时间】:2025-11-26 06:50:02
【问题描述】:

我有具有可变采样率的加速度计数据。我正在尝试通过插值将其增加 50hz 的恒定采样率。时间戳的问题是,它没有毫秒。

如何在不丢失已有数据的情况下做到这一点?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以先使用df.set_index('timestamp') 将索引设置为日期时间列,然后使用df.resample()。您要传递给resample 函数的指令是L(毫秒),但您可以阅读更多hereresample 函数还允许您选择多种插值模式。

    【讨论】:

    • 我试过这个 df.resample('20ms', on='timestamp')。这仅采用第一次出现的值并增加采样率,但该特定秒的所有其余数据都将丢失。它只是填充为 nan。
    • 我明白了。这很棘手,因为对于pandas,它只看到一堆具有相同时间戳的值并且不知道如何处理它。此外,似乎并不总是存在相同数量的重复时间戳。看来您可能手动滚动了一些东西;基本上是逐秒进行,假设给定秒的所有值在一秒内均匀间隔,并使用邻居的平均值或其他东西进行插值。
    • 另一种可能的方法是逐秒遍历并更改时间戳,以便它们均匀间隔第二个值重复的次数,然后然后使用 resample 来填写其他所有内容。这样pandas 仍将完成大部分工作。