龙空技术网

python之股票数据分析

充电实践 1467

前言:

此刻咱们对“怎么用python做股票分析”大体比较关怀,看官们都想要剖析一些“怎么用python做股票分析”的相关内容。那么小编同时在网上汇集了一些关于“怎么用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+0625% 79.855000 80.945000 79.157500 79.935000 1.003487e+0750% 91.000000 91.740000 89.925000 90.705000 1.350020e+0775% 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 220715852018-02-22 190.20 190.74 187.77 188.75 122828432018-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做股票分析