熊猫系列重采样+插值给出NaN

用户名

x 是DateTimeIndex上的float64数字的熊猫系列

x.head(20) 看起来像这样:

Timestamp
2018-05-03 15:05:31.864    1.799104
2018-05-03 15:05:31.993    1.080555
2018-05-03 15:05:32.145    1.374885
2018-05-03 15:05:32.963    1.264249
2018-05-03 15:05:33.529    1.251358
2018-05-03 15:05:33.938    1.199366
2018-05-03 15:05:34.378    1.201764
2018-05-03 15:05:34.496    1.267969
2018-05-03 15:05:34.895    1.251358
2018-05-03 15:05:36.572    1.313922
2018-05-03 15:05:37.562    1.270770
2018-05-03 15:05:38.013    1.230315
2018-05-03 15:05:38.166    1.185131
2018-05-03 15:05:38.285    1.150098
2018-05-03 15:05:39.555    1.122180
2018-05-03 15:05:39.698    1.094660
2018-05-03 15:05:40.815    1.084887
2018-05-03 15:05:41.700    1.068585
2018-05-03 15:05:41.993    1.071981
2018-05-03 15:05:42.139    1.084344
Name: C2:37:A3:40:10:60_s, dtype: float64

我想做的是将系列重新采样并内插到100ms的周期。这是我尝试的:

y = x.resample("100ms").interpolate("linear")

它实际上并没有真正实现我的预期。

首先,y在1700个条目中包含约100 NaN。插值不应该照顾NaN吗?

我继续绘制了原始x系列和重新采样的“ y”系列。绘制的x系列(左),y系列(右)

我究竟做错了什么?我真的只是想获得一个平滑且平滑的序列,每100ms就有一个值,并在必要时进行线性插值。基本上将左图变成右图:

我所拥有的(左),我想要的(右)

我曾经直接通过这样做scipy.interpolate.interp1d,但是希望直接在熊猫中使用一些不那么麻烦的东西。

海盗

达蒙:

您想使用现有索引的联合以及重新采样的索引进行插值。

idx = pd.date_range(x.first_valid_index(), x.last_valid_index(), freq='100ms')

这是获取索引的一种可爱方法

idx = x.asfreq('100ms').index

如果您想舍入为 '100ms'

idx = idx.floor('100ms')

  1. 用联合索引重新索引
  2. 用进行插值'index'基于索引值之间的间隔,这将是线性的。
  3. 重新索引,减少 '100ms'

y = x.reindex(x.index.union(idx)).interpolate('index').reindex(idx)


y

Timestamp
2018-05-03 15:05:31.864    1.799104
2018-05-03 15:05:31.964    1.242089
2018-05-03 15:05:32.064    1.218038
2018-05-03 15:05:32.164    1.372315
2018-05-03 15:05:32.264    1.358790
2018-05-03 15:05:32.364    1.345265
2018-05-03 15:05:32.464    1.331740
2018-05-03 15:05:32.564    1.318214
2018-05-03 15:05:32.664    1.304689
2018-05-03 15:05:32.764    1.291164
                             ...   
2018-05-03 15:05:41.164    1.078458
2018-05-03 15:05:41.264    1.076616
2018-05-03 15:05:41.364    1.074774
2018-05-03 15:05:41.464    1.072932
2018-05-03 15:05:41.564    1.071090
2018-05-03 15:05:41.664    1.069248
2018-05-03 15:05:41.764    1.069327
2018-05-03 15:05:41.864    1.070486
2018-05-03 15:05:41.964    1.071645
2018-05-03 15:05:42.064    1.077993
Freq: 100L, Name: C2, Length: 103, dtype: float64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章