【问题标题】:Python pandas resample timeseriesPython pandas 重新采样时间序列
【发布时间】:2019-11-23 13:05:18
【问题描述】:

我有一个大约 5000 行和 17 列的数据框。这是一个频率约为 60 赫兹(即每秒 60 行)的时间序列。我现在想将它重新采样到一个较低的值(即每秒大约 40 或 50 行)。第一列是以纳秒为单位的时间戳。这是它的外观

它从 60 开始的原因是因为我删除了前 60 帧(因为噪音问题)。 当我尝试将索引设置为日期时间时

df.set_index(DatetimeIndex(df['Timestamp'], freq='ns'), inplace=True)

我得到了错误

{ValueError}推断的频率None从传递的值不符合传递的频率N

并且需要将索引设置为日期时间,否则我会收到错误消息

{TypeError}仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了 'Int64Index' 的实例

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    freq='ns' 不是有效的频率字符串。 有效别名是 https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#offset-aliases

    我觉得你需要设置freq='N'

    如果还是不行,不如把freq的值设置为'infer',让pandas自动推断频率。

    【讨论】:

    • 'ns' 和 'N' 是相同的,并且确保我也使用 'N' 运行它并且它给出了完全相同的错误。这是我的来源:benalexkeen.com/resampling-time-series-data-with-pandas(倒数第二张桌子)
    • 更新了答案。尝试将freq 设置为'infer'
    • infer 是标准参数值,因此不会改变任何东西。不过感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 2014-07-24
    • 2019-01-18
    • 2018-03-18
    • 2015-11-07
    • 2018-03-14
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多