7.1 第七章 数据分析项目实战:股票市场分析



一、准备

1.1 数据科学的工作流

第二步:获取数据

1.2 数据获取的一般方式

1.

主动获取:通过爬虫技术

2.

被动获取:别人提供的一些接口api:

  • 国内微博、国外推特,会提供数据接口

3.

公开的数据集的来源:

  • Kaggle:数据分析、机器学习,必去的网站

  • Google public dataset

  • AWS public dataset亚马逊也有
  • YAHOO Finance

二、股票市场分析:数据获取

2.1 数据来源:YAHOO Finance

YAHOO Finance:金融领域,权威的数据网站。

比如,搜索一下阿里巴巴的股票:

2.2 工具:pandas-datareader的安装

1.

以前的Matplotlib、Seaborn,是已经在Anaconda中默认装好了的。

但是,工具pandas-datareader却没有。

2.

安装:不通过上述的pip安装。这次使用Anaconda提供的conda来安装:

老师方式:

3.我的安装:

  • 打开Anaconda的自己的提示符Prompt:

  • 输入:pip install pandas_datareader
  • 安装成功:

4.在Jupyter Notebook中,已经能够成功的导入使用:

2.3 获取到股票数据

通过上述的工具 pandas_datareader,所提供的api:get_data_yahoo()函数,来将YAHOO网站上的数据,在线的拿过来:

1.报错问题:

可能存在的问题及解决方案:https://blog.csdn.net/SmartChipmunk/article/details/118685362

2.

因为解决上述问题,有点耗时。且,目的是获取到股票的数据。
又,本地电脑又有这一个csv文件。故:直接读取即可:

读取为一个DataFrame:

查看一下基本的信息:

3.

把亚马逊这家公司的股票数据,也拿过来:

4.

将两张表的索引调整为日期(时间序列,方便绘图):

三、股票市场分析:历史趋势

3.1 初步画图

1.

导入对应的包:

  • 数据处理的包
  • 可视化的包

2.

对alibaba表中,对某一个column列来画图:

3.

除了上述的阿里巴巴的表,不是还有亚马逊公司的股票的表吗,那就两个公司画到同一张图中:

3.2 变化:每天的差值的变化

1.

新增一列,盛放每天的最高价与最低价的差值:

3.3 变化:天与天之间的变化(daily return):pct_change()

daily return

1.

2.

让画布的尺寸,调整下:

  • 正方形变成长方形

3.

调整为虚线,且小球点,更直观:

3.4 直方图:更直观

1.Matplolib:

2.Seaborn

如果数据有空格的话,会报错。那么就先去掉空格:

将bins改的大一些,同时换个颜色:

以上说明:

  • 阿里巴巴:股票市场的变化,几乎都在5%上下。

四、股票市场分析:风险分析

4.1 数据准备

1.

美国股票市值前五名的公司:

  • 苹果、谷歌、微软、亚马逊、脸书

生成一个DataFrame:

由于index是默认的数字,这里应该将索引设置为Date(时间序列):

每天的变化:

2.

为了更好的绘图,将index行索引,排个序:按照日期从小到大:

4.2 seaborn绘图:曲线

1.

绘图:

2.

挑选出其中的三个公司的曲线:

4.3 散点图,绘制daily return每天的变化

用散点图,绘制daily return每天的变化:

1.

注意:

必须参数,即position位置参数,必须是在固定的位置上。且是最高级的。

所以,具有指定性质的关键字参数作为次级,只能在第二档。必须在所有位置参数的后面。

2.

谷歌、亚马逊两家公司:

几乎是一条沿着45°的直线,说明是正相关:

3.

绘制矩阵形式的散点图:

对大于等于2个数据源,的散点图的可视化:

4.4 风险:分位数,本质是概率

这里的0.05指的是:有95%的概率,亏损2.37%

五、总结

5.1 Kaggle网站

是一个可以持续精进的高质量的网站。

1.

比如,找到关于Bitcoin的数据集:

2.code

声明:Jerry's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 7.1 第七章 数据分析项目实战:股票市场分析


Follow excellence, and success will chase you.