python之股票数据分析
一、初识Pandas
Pandas 是基于 NumPy 的一个非常好用的库,它有两种自己独有的基本数据结构Series (一维)和 DataFrame(二维),它们让数据操作更简单了。虽然Pandas有着两种数据结构,但它依然是 Python 的一个库,所以,Python 中有的数据类型在这里依然适用,也同样还可以使用类自己定义数据类型。
在金融数据分析领域,Pandas更是起到了非常重要的作用,比如用于量化交易。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,对于亿级的数据处理也如鱼得水。
二、Pandas基本操作
1、Series的创建
Series的创建主要有三种方式:
1)通过一维数组创建Series
import numpy as npimport pandas as pd#创建一维数组a = np.arange(10)
print(a)
s = pd.Series(a)
print(s)
输出如下:
2)通过字典的方式创建Series
import numpy as npimport pandas as pd#创建字典d = {'a':1,'b':2,'c':3,'d':4,'e':5}
print(d)s = pd.Series(d)
print(s)
输出如下:
3)通过DataFrame中的某一行或某一列创建Series
参考下面DataFrame第三种创建方式中的s = df3['one']。
2、DataFrame的创建
DataFrame的创建主要有三种方式:
1)通过二维数组创建DataFrame
import numpy as npimport pandas as pd#创建二维数组a = np.array(np.arange(12)).reshape(3,4)
print(a)df1 = pd.DataFrame(a)
print(df1)
输出如下:
2)通过字典的方式创建DataFrame
以下以两种字典来创建数据框,一个是字典列表,一个是嵌套字典。
import numpy as npimport pandas as pdd1 = {'a':[1,2,3,4],'b':[5,6,7,8],'c':[9,10,11,12],'d':[14,14,15,16]}
print(d1)df1 = pd.DataFrame(d1)
print(df1)d2 = {'one':{'a':1,'b':2,'c':3,'d':4},'two':{'a':5,'b':6,'c':7,'d':8},'three':{'a':9,'b':10,'c':11,'d':12}}
print(d2)df2 = pd.DataFrame(d2)
print(df2)
输出如下:
3)通过DataFrame的方式创建DataFrame
我们取出2)中的df2来创建df3
df2 = pd.DataFrame(d2)print(df2)df3 = df2[['one','two']]print(df3)s = df3['one']print(s)
输出如下:
三、处理股票数据
接下来,我们通过实例来学习Pandas在处理股票数据上的应用。
我们使用pandas_datareader来获取阿里巴巴的股票数据。
1)导入以下库:
import pandas as pdimport pandas_datareader.data as web#绘图使用import matplotlib.pyplot as plt#获取时间使用import datetime
2)设置股票名称和时间参数
name = "BABA"start = datetime.datetime(2015,1,1)end = datetime.date.today()
3)获取股票数据
prices = web.DataReader(name, "google", start, end)
4)查看prices的类型
print(type(prices))
打印如下:
<class 'pandas.core.frame.DataFrame'>
可以看到返回的数据类型就是DataFrame类型。
5)查看股票的摘要信息
print(prices.describe()
打印 如下:
Open High Low Close Volumecount 791.000000 791.000000 792.000000 792.000000 7.920000e+02mean 106.632099 107.793186 105.355164 106.614520 1.610571e+07std 38.191772 38.539981 37.719848 38.156416 9.941683e+06min 57.300000 58.650000 57.200000 57.390000 2.457439e+06
25% 79.855000 80.945000 79.157500 79.935000 1.003487e+07
50% 91.000000 91.740000 89.925000 90.705000 1.350020e+07
75% 119.315000 120.400000 118.462500 120.205000 1.879724e+07max 204.830000 206.200000 202.800000 205.220000 9.704593e+07
再来打印最新的三条信息
print(prices.tail(3))
Open High Low Close VolumeDate 2018-02-21 189.37 193.17 188.46 188.82 22071585
2018-02-22 190.20 190.74 187.77 188.75 12282843
2018-02-23 190.18 193.40 189.95 193.29 16937275
6)绘图
我们将阿里巴巴的股票数据按照开盘价绘图。
plt.plot(prices.index, prices["Open"])plt.show()
从图中我们可以看到阿里巴巴的股票一路攀升,细心点发现每年的11月都有一个高点。
四、总结
Pandas是以NumPy和Matplotlib为基础封装的金融数据分析的库,对于量化交易十分有用,通过可视化的效果能帮我们一定程度分析股市的走向。
python之股票数据分析相关推荐
- 使用 Python 对股票数据分析预测
使用 Python 对股票数据分析预测 文章目录 使用 Python 对股票数据分析预测 目录索引 模块安装 股票数据获取 雅虎财经 Quandl 模块 Pandas Datareader 模块 数据 ...
- Python实现股票数据分析的可视化
Python实现股票数据分析的可视化 文章目录 Python实现股票数据分析的可视化 一.简介 二.代码 1.主文件 2.数据库使用文件 3.ui设计模块 4.数据处理模块 三.数据样例的展示 四.效 ...
- 用python进行股票数据分析_利用python进行股票数据分析
个人觉得这问题问的不太对,说句不好的话,你是来搞编程的还是做股票的. 当然,如果题主只是用来搜集资料,看数据的话那还是可以操作一波的,至于python要怎么入门,个人下面会推荐一些入门级的书籍,通过这 ...
- python股票数据分析_用Python进行股票数据分析
本篇运用Python进行自选股的数据分析,帮助进行投资决策,分析用到以下两个模块:pandas(数据分析包):pandas_datareader(可以查询雅虎的股票数据接口). 本篇参考了猴子老师的课 ...
- python tus股票数据分析_使用Python进行快速复盘[1]: 数据获取与整理
各位小伙伴周末好,本周想给大伙分享的内容是使用Python进行复盘,有小伙伴问到自己是否有必要学习Python,不可否认Python在进行数据分析时有很多优势,学习曲线也不算特别陡峭,但每个人具体情况 ...
- 用python做股市数据分析一_用python做股票数据分析(兴趣篇)
本文我们一起用python来对某只股票的所有历史日数据,做一个探索性的分析,看看能不能有一些有趣的发现,希望能激起你对金融数据分析的兴趣.主要用到numpy,pandas模块的一些基本用法.本文的所有 ...
- python tus股票数据分析_python 股票量化分析(一)---基于Tushare平台的个股历史行情获取...
在浩瀚如烟的股票中,如何将好股选择出来?长线.中线.短线个股如何筛选?国内外政治.经济.地缘博弈基本面对股市的影响有多大,怎样将其纳入股票选择买卖的决策因子?公司财报.未来规划.公司所处行业发展前景怎 ...
- 用python进行股票数据分析_用 Python 做股市数据分析(2)
这篇博文是用Python分析股市数据系列两部中的第二部,内容基于我在阅读第一部分).在这两篇博文中,我会讨论一些基础知识,包括比如如何用pandas从雅虎财经获得数据, 可视化股市数据,平均数指标的定 ...
- python tus股票数据分析_用TuShare验证股市中的“春节效应”
在中国股民的印象中,农历年后股市一般上涨的概率较大,所以很多投资者会在农历年前买入股票,以待年后股市上涨收取红包,这叫做股市中的"春节效应".那么实际上存不存在这种"春节 ...
- 使用python对股票数据分析预测
安装quandl 安装Pandas_Datareader 1.获取数据 import Pandas_Datareader.data as web import datetime start=datet ...
最新文章
- 屏蔽敏感词的正则表达式
- LFFD ncnn torch
- 在ASP程序设计中在使用Response对象
- Mybatis-增删改查模糊查询分页注解(普通类型参数、引用类型参数、Map类型参数)
- Qt / 如何解决移动了 Qt 的项目,但是 Qt 在原目录下生成编译文件的问题
- php mssql image,linux+php连接mssql
- C# 代理HTTP请求
- SpirngMVC通过Ajax传递多个对象
- Struts2笔记——15.Spring的事务
- python批量下载b站_python 批量下载bilibili视频的gui程序
- oracle修改默认值语句,Oracle 常用的修改语句
- 【电子签章】HTML格式合同转化成PDF文件
- 使用SharePoint Designer 2010新建外部内容类型,并解决访问被拒绝问题
- linux lefse分析,LEfSe分析,你真的懂了么
- Oliver的成绩(score)
- 【AlgorithmTraining】08:Leetcode(上)
- 关于 RTOS 的选择
- JAVA网络爬虫(无头浏览器ChromeDriver)
- 第七章 MapReduce详解
- [全网首发!超级简单!] iOS开Minecraft:Java版服务端