熊猫重拍

时间:2014-03-08 20:39:29

标签: pandas time-series

我有一些不规则标记的以下形式的时间序列数据,

         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

2 个答案:

答案 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')