36. 股票时间序列数据处理#
36.1. 介绍#
本次挑战将使用股票时间序列数据,通过数据处理和特征工程构建模型,预测股票的涨跌。
36.2. 知识点#
时间格式转换
时序数据重采样
数据排序
36.3. 挑战介绍#
时间序列处理实验中,我们一开始就拿 Google 股价变化曲线图给大家举例。本次挑战中,需要应用学习到的时间序列数据处理方法,来对 Google 股价变化数据进行处理。
36.4. 挑战内容#
挑战提供了 Google 公司从 2005 年到 2018 年期间的股票交易数据,并汇总到文件 GOOGL.csv 数据文件。下载链接:
wget -nc https://cdn.aibydoing.com/aibydoing/files/GOOGL.csv
数据集前 5 行预览如下:
由于股票存在交易日,实际数据的起止日期可能并不是 1 月 1 日至 12 月 31 日。
Date | Open | High | Low | Close | Adj Close | Volume | |
---|---|---|---|---|---|---|---|
0 | 2005/1/3 | 98.798798 | 101.921921 | 97.827827 | 101.456459 | 101.456459 | 31656700 |
1 | 2005/1/4 | 100.800804 | 101.566566 | 96.836838 | 97.347351 | 97.347351 | 27484200 |
2 | 2005/1/5 | 96.821823 | 98.548546 | 96.211212 | 96.851852 | 96.851852 | 16456700 |
3 | 2005/1/6 | 97.637634 | 98.048050 | 93.953957 | 94.369370 | 94.369370 | 20753400 |
4 | 2005/1/7 | 95.415413 | 97.222221 | 94.484482 | 97.022018 | 97.022018 | 19306400 |
数据共有 6 列,分别为:成交日期(Date)、开盘价格(Open)、最高价格(High)、最低价格(Low)、收盘价格(Close)、调整后收盘价格(Adj Close)、成交量(Volume)。
挑战要求针对该数据文件进行时间序列分析,并按照季度进行数据采样。其中,所有价格有关的数据均取均值,成交量则取总和。最终,将 DataFrame 按照成交量降序排列并返回。
36.5. 挑战要求#
-
需要将代码保存到
Code
文件夹中,并以google_stock.py
命名。 -
需要补充下方
def quarter_volume()
中的代码。挑战最后需要返回题目要求的 DataFrame。 -
一年可以分为四个季度,每个季度历时 3 个月。第一季度:1-3 月;第二季度:4-6 月;第三季度:7-9 月;第四季度:10-12 月。你需要通过阅读官方文档自行了解如何进行季度采样。
-
测试时请使用
python
运行google_stock.py
,避免出现无相应模块的情况。
36.6. 示例代码#
def quarter_volume():
### 补充代码 ###
return df # 返回题目要求的 DataFrame
参考答案 Exercise 36.1
import pandas as pd
def quarter_volume():
df = pd.read_csv("GOOGL.csv", index_col=0)
df.index = pd.to_datetime(df.index)
df = df.resample('Q').agg({"Open": 'mean', "High": 'mean', "Low": 'mean',
"Close": 'mean', "Adj Close": 'mean', "Volume": 'sum'})
df = df.sort_values(by='Volume', ascending=False)
return df
○ 欢迎分享本文链接到你的社交账号、博客、论坛等。更多的外链会增加搜索引擎对本站收录的权重,从而让更多人看到这些内容。