学习使用python来分析股票,主要事涉及数据获取、数据可视化,以及探究数据中各项指标的含义及和关系。使用工具 pandas、numpy、datatime pandas-datareader 在线获取股票数据 matplotlib 数据可视化 Jupyter Notebook 数据分析利器#一、数据获取

# 导入包import pandas as pdimport numpy as npimport pandas_datareader.data as webfrom datetime import datetime1

2

3

4

5# 初始数据# 创建字典myDict = {'谷歌': 'GOOG', '苹果': 'AAPL', '阿里巴巴':'BABA', '腾讯': '0700.hk' }# 时间start = datetime(2017,1,1)end = datetime(2017,12,31)1

2

3

4

5

6

7

8

9

10

# 从IEX数据源获取谷歌股票数据gdata = web.DataReader(myDict['苹果'],'iex', start, end)1

22y# 查看前5条数据gdata.head()1

2

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }

openhighlowclosevolume

date2017-01-03113.5044114.0239112.4850113.847428781865

2017-01-04113.5534114.2003113.4554113.720021118116

2017-01-05113.6220114.5475113.5142114.298322193587

2017-01-06114.4649115.8176114.1611115.572531751900

2017-01-09115.6118117.0624115.6020116.631133561948

# 查询某一天数据gdata.loc['2017-09-11']1

2open 1.592756e+02 high 1.608138e+02 low 1.586703e+02 close 1.602680e+02 volume 3.158080e+07 Name: 2017-09-11, dtype: float64# 逆序排列gdata = gdata[::-1]1

2

# 查询前10条数据# 将显示重新排列后的结果gdata[:10]1

2

3

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }

openhighlowclosevolume

date2017-12-29169.8275169.8972168.5328168.542825999922

2017-12-28170.3056171.1521169.7877170.385216480187

2017-12-27169.4092170.0865169.0208169.907221498213

2017-12-26170.1064170.7737168.9899169.877333185536

2017-12-22173.9706174.7116173.7914174.299316349444

2017-12-21173.4627175.3052173.3930174.299320949896

2017-12-20174.1599174.7076172.5464173.642023475649

2017-12-19174.3192174.6777173.3830173.831227436447

2017-12-18174.1698176.4804174.1499175.703629421114

2017-12-15172.9249173.4627171.7596173.263540169307# 查询更多信息gdata.info1

2

# 查看数据类型gdata.dtypes1

2open float64 high float64 low float64 close float64 volume int64 dtype: object# 查看数据集描述统计信息gdata.describe()1

2

.dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; }

openhighlowclosevolumecount251.000000251.000000251.000000251.0000002.510000e+02

mean148.836282149.783743147.883783148.9368502.707997e+07

std15.24405815.32135114.97392115.1194711.128283e+07

min113.504400114.023900112.485000113.7200001.402667e+07

25%139.685100140.516950138.833550139.6063502.041327e+07

50%151.237300152.158200149.741000150.8731002.436148e+07

75%158.496600159.448850157.299600158.5958502.952661e+07

max174.398900176.480400174.149900175.7036001.119850e+08

二、数据观察每日股票信息

open: 开盘价

high: 最高价

low: 最低价

close: 收盘价

volume: 成交量

下面我们主要来关注每日的收盘价

股票涨跌幅度

'''定义函数:计算机股票涨跌幅 =(现在股价-买入价格)/买入价格输入参数:column 表示收盘价这一列数据返回涨跌幅'''def change(column): # 买入价格 年初 buyPrice = column[0] # 现在价格 年末 curPrice = column[len(gdata)-1] changePrice = (curPrice - buyPrice)/buyPrice # 判断股价变化 if changePrice > 0: print('股票累计上涨=',changePrice) elif changePrice == 0: print('股票累计没有变化=',changePrice) else: print('股票累计下跌=', changePrice) return changePrice1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20# 查看结果bdata = gdata[::-1]change(bdata['close'])1

2

3

股票累计上涨= 0.480427308836214150.480427308836214151

2

3

4

5

6

7

数据可视化-时间序列图

以时间为横坐标,每日的收盘价为纵坐标,绘制折线图,可以观察股票随时间的波动情况。我们使用 matplotlib 包来绘制。# 导入绘图包#coding:utf-8import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号1

2

3

4

5

# 绘制图表fig, ax = plt.subplots(figsize=(14,8)) # 绘图窗口大小plt.title('2017年苹果股票', fontsize=18) # 标题ax.plot(bdata['close'],color='blue', label='收盘价') ax.plot(bdata['open'],color='#F37726', label='开盘价')ax.plot((bdata['close']-bdata['open']),color='red', label='每日涨跌(收盘价-开盘价)')ax.grid(False) # 网格ax.legend(frameon=False)plt.xlabel('1-12月份', fontsize=14) # 横坐标# plt.ylabel('收盘价', fontsize=14) #纵坐标# 刻度标记大小# axis 可选择参数 x,y,both plt.tick_params(axis='both',labelsize=13) # ax.axis('equal') # label显示位置plt.show() # 显示1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

先挖个坑:

上图中横坐标一条黑粗线,实际为每天股票日期,全部重叠在一起就变这条黑线 囧

原来想显示1-12月份的,但找了好多资料都还没完成,希望哪个大神看到能指导下,谢谢!

学会了回来补上

上图中我首先用蓝色绘制收盘价折线图,再用黄色绘制开盘价折线图,最后用红色绘制每日涨跌幅折线图,看起来是否很乱,如果再加上每天最高价和最低价,那就更无法见人了。

那么有什么方法能够在一张图中显示出这四种指标呢?答案是K线图。

K线图

相传K线图起源于日本德川幕府时代,当时的商人用此图来记录米市的行情和价格波动,后来K线图被引入到股票市场。每天的四项指标数据用如下蜡烛形状的图形来记录,不同的颜色代表涨跌情况。

三、数据分析

相对变化量

股票中关注的不是价格的绝对值,而是相对变化量。有多种方式可以衡量股价的相对值,最简单的方法就是将股价除以初始时的价格。

方法一: 前面介绍的计算每日涨跌幅(收盘价-开盘价)/ 开盘价1

# 绘制图表fig, ax = plt.subplots(figsize=(14,8)) # 绘图窗口大小plt.title('2017年苹果股票', fontsize=18) # 标题# 绘制参考线(bdata['close']-bdata['open']).plot(grid=True, color='red', label='每日涨跌(收盘价-开盘价)').axhline(y=0, color='black', lw=2)ax.legend(frameon=False)plt.xlabel('1-12月份', fontsize=14) # 横坐标plt.ylabel('涨跌幅度', fontsize=14) #纵坐标# 刻度标记大小# axis 可选择参数 x,y,both plt.tick_params(axis='both',labelsize=13) plt.show() # 显示1

2

3

4

5

6

7

8

9

10

11

12

相关关系

在观察了价格的走势之后,我们来看看各指标之间的关系。又挖了个坑:

学会了再说 囧

python股票分析入门_学习用Python分析股票数据(入门)相关推荐

  1. 爬虫python可以干嘛_学了Python可以用来干什么呢?

    很多家长朋友可能会问,孩子学Python 可以用来干什么呢? 一般学Python可以往很多方面发展: 01 web应用开发 在国内,豆瓣一开始就使用Python作为web开发基础语言,知乎的整个架构也 ...

  2. python怎么输入程序代码_学习用 Thonny 写代码: 一个面向初学者的Python IDE

    学习编程很难.即使当你最终怎么正确使用你的冒号和括号,但仍然有很大的可能你的程序不会如果所想的工作. 通常,这意味着你忽略了某些东西或者误解了语言结构,你需要在代码中找到你的期望与现实存在分歧的地方. ...

  3. thonny和python有什么关系_学习用 Thonny 写代码: 一个面向初学者的Python IDE

    学习编程很难.即使当你最终怎么正确使用你的冒号和括号,但仍然有很大的可能你的程序不会如果所想的工作. 通常,这意味着你忽略了某些东西或者误解了语言结构,你需要在代码中找到你的期望与现实存在分歧的地方. ...

  4. python工程师累吗_学完Python工程师好就业吗?

    Python语言相对其他计算机语言而言比较简单,Python以前就是一门比较流行的编程语言,它主要用于后端.测试.运维,测试.运维就不说了,高级一点的测试和运维可以使用Python作为脚本语言,而Py ...

  5. 学python可以从事什么工作-学完Python后可以从事哪些工作?

    Python拥有丰富和强大的库,被称为"胶水语言",能够运用到各种领域,吸引了很多人前来学习.Python如此火爆,学完后除了可以从事人工智能相关工作外还可以干什么呢?下面千锋就为 ...

  6. 学习用Python分析股票数据(入门)

    学习使用python来分析股票,主要事涉及数据获取.数据可视化,以及探究数据中各项指标的含义及和关系. 使用工具 pandas.numpy.datatime pandas-datareader 在线获 ...

  7. 如何学python新手入门_如何学习Python,以及新手如何入门?

    好久以前就想写这个回答了. 学校里面开了一门极其火的python通识课,我幸运选上,加上我对python还是比较感兴趣的.就这样我开始了我的python学习之路. 提前说明吧,我真的还只是一个纯纯纯新 ...

  8. Python入门教程:很多人推荐学 Python 入 IT ,如果学完 Python 找不到工作怎么办...

    Python入门教程:很多人推荐学 Python 入 IT ,但是如果学完 Python 找不到工作怎么办,这也是很多人担心的问题. 很多人推荐通过学习 Python 入行 IT 一是因为 Pytho ...

  9. python技术是什么_学 Python 都用来干嘛的?

    编程语言千千万万,不学python快乐少一半. 首先我们要明确一点,相比较于C语言,C++/Java等语言来说,python是比较适合普通人的一门语言. 如果说学编程是盖楼房,一个原始人要造现代化的房 ...

最新文章

  1. 前端一HTML:二十CSS的三种存在方式
  2. 一文搞懂重复测量资料分析
  3. ssm使用全注解实现增删改查案例——EmpMapperImpl
  4. mysql性能优化 硬件优化_mysql性能优化学习笔记(6)数据库配置优化硬件优化...
  5. android程序怎么导出数据库,将android程序中的数据库导出到SD卡
  6. 企业域名备案流程_2021境外投资备案申报流程(办理企业境外投资证书注意事项)...
  7. android通讯录备份恢复代码逻辑
  8. 3d激光雷达开发(绘制长方体)
  9. 币安跨链桥在BSC、以太坊和IoTeX主网全面支持IOTX资产
  10. Java后端开发技术选型
  11. 信息系统分析与设计杨选辉_信息系统分析与设计课后题答案(杨选辉)
  12. Redis开发与运维 笔记一
  13. Tims中国上市背后:以新流派打法,“开源”咖啡市场
  14. SD卡、TF卡、MMC卡以及eMMC芯片的介绍
  15. 算法学习笔记:涉及动态规划的简单例题
  16. 数学在计算机方面的应用论文参考文献,数学论文参考文献
  17. R语言逻辑回归、方差分析 、伪R平方分析
  18. php错误排查 写入文档,php error_log 错误信息写入文件
  19. 超详细pynq-z2入门
  20. 如何从初级程序员顺利晋升到高级程序员?

热门文章

  1. python 北上资金_python爬虫技术:北向资金数据自动爬取!
  2. 接到个商城任务需要接入个微信或者QQ客服,找到了两篇解决文章
  3. 【读书笔记】RevMiner:RevMiner: An Extractive Interface for Navigating Reviews on a Smartphone
  4. _ETHREAD断链 —— 实现线程隐藏
  5. hdu 1166 排兵布阵
  6. 【译】可扩展前端2  —  常见模式
  7. 国潮复兴——从红旗H9看HMI设计中的东方美学
  8. 程序媛学车之——科目二流程
  9. Android Studio:基本UI界面设计 (详细)
  10. 大数据DBA:大数据数据库管理做什么