下采样问题:重采样和asfreq之间的差异

时间:2018-12-05 09:13:12

标签: python pandas

我正在使用df处理定义为pandas的时间序列数据帧。 我已经使用set_index将行索引更改为日期时间索引。
我想使用resampleasfreq每隔5秒对一个数据帧进行下采样。 假设降采样到1小时。

df_inst = df.asfreq('1H')    
df_inst2 = df.resample('1H')

当我执行上面编写的代码时,asfreq给了我正确的数据帧降采样到1 h的间隔,这正是我所期望的。

但是,resample没有生成任何数据帧变量,此外,没有错误消息。

使用print检查它时,我收到以下消息。

print(df_inst2)
DatetimeIndexResampler [freq=<Hour>, axis=0, closed=left, label=left, convention=start, base=0]

我想念什么? 更具体地说,如何像使用resample一样使用asfreq来获得结果

谢谢。

1 个答案:

答案 0 :(得分:0)

DataFrame.resample返回Resampler object,而DataFrame.asfreq返回转换后的数据。

如果您想正确使用resample,请将其与特定方法结合使用,例如:df.resample('1H').asfreq()

文档示例:

>> index = pd.date_range('1/1/2000', periods=9, freq='T')
>> series = pd.Series(range(9), index=index)
>> series.resample('30S').asfreq().head(5)

2000-01-01 00:00:00   0.0
2000-01-01 00:00:30   NaN
2000-01-01 00:01:00   1.0
2000-01-01 00:01:30   NaN
2000-01-01 00:02:00   2.0
Freq: 30S, dtype: float64