重采样时间序列数据,本章我们将学习怎样使用Pandas重采样时间序列数据。
具体步骤
我们将下载AAPL股票每日股价的时间序列数据,然后通过计算平均值的方式,对这些数据做重采样处理。为此,我们将创建一个Pandas的DataFrame
对象,并调用它的resample
方法。
- 创建一个日期时间索引对象。
在创建Pandas的DataFrame
对象之前,需要先创建一个日期时间索引(DatetimeIndex
)对象。这个DatetimeIndex
对象将被作为索引传递给DataFrame
的构造函数。用如下语句从下载的股价数据创建日期时间索引对象。
- 创建
DataFrame
对象。
用日期时间索引对象和收盘价数据创建一个DataFrame
对象。
- 重采样。
以每月一次的频率,通过计算平均值的方式,重采样时间序列数据。
重采样后的时间序列中,每月只有一个数据,如下所示。
- 绘图。
用DataFrame
的plot
方法,绘制数据。
用原始时间序列绘图后的结果如下图所示。
重采样后的时间序列数据点较少,因此用该序列绘制的曲线看上去不太连贯,如下图所示。
完整的重采样代码如下。
攻略小结
我们用日期和时间列表,创建了一个日期时间索引对象。该索引对象被用来创建Pandas的DataFrame
对象。我们对时间序列数据进行了重采样,重采样的频率通过一个单字符的参数给出:
- D,每天一次
- M,每月一次
- A,每年一次
resample
方法中的how
参数指明了具体的重采样方式,默认的重采样方式是计算平均值。