文章目录
1、明确需求和目的
- 分析阿里巴巴近三年的股票数据,看看涨跌情况如何。
- 制定股票交易策略,分析盈利情况。
2、数据收集
-
数据来源于阿里巴巴股票历史数据网站:https://www.nasdaq.com/symbol/baba/historical
-
原始数据为阿里巴巴近五年的股票交易数据,截止到2020年5月1日,数据格式如下所示,包含基本的日期、开盘价、收盘价等信息:
3、数据预处理
3.1 加载相关库和数据集
- 使用的库主要有:pandas、matplotlib、mpl_finance
- 使用的数据集:阿里巴巴近五年股票数据集(“BABA_stock.csv”)
import pandas as pd
import matplotlib.pyplot as plt
import mpl_finance as mpf
import warnings
plt.rcParams["font.family"] = "SimHei" # 设置可以显示中文字体
plt.rcParams["axes.unicode_minus"] = False
warnings.filterwarnings("ignore") # 忽略警告信息
data = pd.read_csv("BABA_stock.csv") # 加载数据集
3.2 数据概览
print(data.info()) # 展示data的概览信息
print(data.describe()) # 展示data 数值类型字段的统计信息
print(data.sample(5)) # 随机抽样5条数据
-------------------------------------------
date close volume open high low
987 05/31/2016 $82 77980590 $81 $82.03 $80.20
1159 09/23/2015 $60 22643800 $61.96 $62.30 $59.68
440 08/01/2018 $185.27 14361340 $186 $189.06 $183.96
624 11/06/2017 $187.84 19834840 $184.07 $188.25 $184
886 10/21/2016 $103.94 7356226 $103.70 $103.94 $102.75
从上面的结果可以看出,数据包含近五年的数据,且价格相关的数据包含 "$"符号。我们只需要近三年的数据,而且数据类型应为数值型,所以需要进行简单处理。
3.3 数据格式处理
首先对日期进行一下转换,变成 "Y-m-d"格式:
data["date"] = pd.to_datetime(data["date"]) # 将转换日期格式
对有"$"符号的数据进行数据转换:
column_list = ["close", "open","high","low"]
for column in column_list:
data[column] = data[column].str.lstrip("$").astype("float")
将日期变成索引,并按照日期升序排序(目前是降序排列):
data.set_index("date", drop=False, inplace=True)
data.sort_index(inplace=True)
只取近三年数据,即日期大于"2017-05-01":
data = data[data["date"]>"2017-05-01"]
再进行一下数据概览:
print(data.head())
----------<