我有一些不规则标记的以下形式的时间序列数据,
Time Pressure Humidity Temperature
2014-02-13 09:15:00.355000 124.283173 26.926562 6119.075
2014-02-13 09:15:00.356000 118.537935 22.228906 6111.625
2014-02-13 09:15:00.357000 118.537935 22.228906 6111.625
2014-02-13 09:15:00.359000 105.237890 10.919141 6104.625
2014-02-13 09:15:00.360000 105.237890 9.773438 6104.625...
2014-02-13 09:15:00.4530000 101.237890 7.773438 6101.625
2014-02-13 09:15:00.4590000 101.237890 7.773438 6101.625
我正在尝试将大熊猫中的数据重新采样到常规的100毫秒或S频率。我希望这可以工作
x = ts.resample('100L',how ='ffill')
那没有做任何事情,事实上它只是给了我同样的系列。然后我试了
x = ts.asfreq('100L',method ='ffill')似乎有效。难道我做错了什么?重新取样不打算在这里使用吗?
这里我希望下采样到100毫秒的分辨率,所以我的目标输出是
2014-02-13 09:15:00.355000 124.283173 26.926562 6119.075
2014-02-13 09:15:00.455000 101.237890 7.773438 6101.625
答案 0 :(得分:1)
根据
的输出,您没有明确要输出的内容 ts.asfreq('S', method = 'ffill')
但这不是ffill方法的作用。当你将how'= ffill'传递给resample方法时,它会使用填充空值的dataframe.ffill。它是
的同义词NDFrame.fillna(method=’ffill’)
如果您想使用重新采样并返回每组中的第一个观察点,请使用“第一个”方法:
ts_df.resample('S',how = 'first')
答案 1 :(得分:1)
使用
x = ts.resample('100L', method='ffill')
而不是
x = ts.resample('100L', how='ffill')