【发布时间】:2019-02-25 03:11:43
【问题描述】:
x 是 DateTimeIndex 上 float64 数字的 pandas 系列
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
我想要做的是将系列重新采样并内插到 100 毫秒的周期。这是我尝试过的:
y = x.resample("100ms").interpolate("linear")
它根本没有达到我的预期。
首先,y 在 1700 个条目中包含大约 100 个 NaN。插值不应该处理 NaN 吗?
我做错了什么?我真的只是想得到一个漂亮而平滑的系列,每 100 毫秒有一个值,在必要的地方线性插值。基本上把左图变成右图:
我以前直接用scipy.interpolate.interp1d 做这件事,但希望直接在 pandas 中使用一些不那么麻烦的东西。
【问题讨论】:
标签: python-3.x pandas