高频股票价格
高频股票数据通常可用 MA(1) 过程建模,因此非常适合应用本章的模型。
DataFrame intraday 包含 Sprint 股票(股票代码 "S")在 2017-09-01 当天按每分钟采样的一天价格。股市开盘 6.5 小时(390 分钟),交易时间为上午 9:30 至下午 4:00。
在进行时间序列分析之前,您需要先做一些清洗工作,您将在本题与接下来的两个练习中完成。查看前几行数据时,您会注意到几件事。首先,没有列名。数据的时间戳不是从 9:30 到 4:00,而是从 0 到 390。并且您会注意到第一条日期是看起来很奇怪的 "a1504272600"。字母 "a" 后面的数字是 Unix 时间,即自 1970-01-01 起的秒数。该数据集就是用这种方式来区分每天的日内数据。
如果查看数据类型,您会发现 DATE 列是对象类型,这里表示字符串。在清理某些缺失数据之前,您需要先将其转换为数值类型。
分钟级数据来源于 Google Finance(关于数据下载方式请参见此处:here)。
datetime 模块已为您导入。
本练习是课程的一部分
Python 中的时间序列分析
练习说明
- 使用
.iloc[0,0]手动将第一条日期改为 0。 - 通过将
intraday.columns设为包含这两个字符串的列表,把两列的列名改为'DATE'和'CLOSE'。 - 使用 pandas 属性
.dtypes(不带括号)查看每列的数据类型。 - 使用 pandas 函数
to_numeric()将'DATE'列转换为数值类型。 - 使用 pandas 方法
.set_index()将'DATE'列设为intraday的新索引。该方法的参数应是字符串'DATE'(不是整列数据,只是列名)。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# import datetime module
import datetime
# Change the first date to zero
intraday.___ = 0
# Change the column headers to 'DATE' and 'CLOSE'
intraday.columns = ___
# Examine the data types for each column
print(intraday.dtypes)
# Convert DATE column to numeric
intraday['DATE'] = pd.to_numeric(____)
# Make the `DATE` column the new index
intraday = ____