【问题标题】:Comparing Time Series with Different Sample Times Using Linear Interpolation in Pandas在 Pandas 中使用线性插值比较具有不同采样时间的时间序列
【发布时间】:2018-08-29 11:39:19
【问题描述】:

背景: 我有一个月的实验数据。数据值在一定程度上是定期获取的,但并没有均匀地划分为一整天。因此,测量从第一天午夜开始,但从第一天 00:03 开始​​,第二天从 00:07 开始,依此类推。因此,每天获取的数据读数都会发生变化。此外,读数之间的频率略有不同。前三天的实验条件,后三天重复,比较中间几天的效果。

目标:我想将重复的天数相互比较,找出它们之间的差异。

问题: 应该比较第1天和第25天,但是每天的相对时间不对应,所以想比较一下第1天的线性插值第 25 天的数据点。即对于第 25 天的每个 timedelta(相对于一天的开始),我想从第一天减去相同的点。如果第一天没有对应点,我想使用最近点之间的线性插值。

到目前为止: 我有按行索引的 Pandas 数据框,列 timevalue 都是浮点数。我在 time 列上使用 pandas.to_timedelta() 创建了一个新列 delta。我尝试减去第 1 天和第 25 天,但由于索引不对齐,我最终得到了许多 NaN 值。我也尝试将 delta 设为索引,但仍然无法弄清楚如何正确计算。

【问题讨论】:

    标签: pandas time-series


    【解决方案1】:

    我解决了这个问题

    1. 将两个DataFrame的索引设置为因变量data.set_index( day_time )

    2. 创建两个 DataFrame 索引的联合 combined_index = df1.index.union( df2.index )

    3. 使用组合索引 df = df.reindex( combined_index ) 重新索引两个 DataFrame

    4. 插入数据帧df = df.interpolate( how = 'linear' )

    这在两个 DataFrame 中创建了一组相互索引,允许使用算术运算符轻松进行比较。

    【讨论】:

      猜你喜欢
      • 2021-06-20
      • 2017-06-03
      • 1970-01-01
      • 2015-06-12
      • 2021-01-09
      • 2014-07-24
      • 2019-10-10
      • 2019-10-20
      • 1970-01-01
      相关资源
      最近更新 更多