python之股票数据分析

一、初识Pandas

Pandas 是基于 NumPy 的一个非常好用的库,它有两种自己独有的基本数据结构Series (一维)和 DataFrame(二维),它们让数据操作更简单了。虽然Pandas有着两种数据结构,但它依然是 Python 的一个库,所以,Python 中有的数据类型在这里依然适用,也同样还可以使用类自己定义数据类型。

在金融数据分析领域,Pandas更是起到了非常重要的作用,比如用于量化交易。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,对于亿级的数据处理也如鱼得水。

二、Pandas基本操作

1、Series的创建
Series的创建主要有三种方式:

1)通过一维数组创建Series
import numpy as np
import pandas as pd
#创建一维数组
a = np.arange(10)
print(a)
s = pd.Series(a)
print(s)

输出如下:


2)通过字典的方式创建Series
import numpy as np
import 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 np
import 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 np
import pandas as pd

d1 = {'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 pd
import 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        Volume
count  791.000000  791.000000  792.000000  792.000000  7.920000e+02
mean   106.632099  107.793186  105.355164  106.614520  1.610571e+07
std     38.191772   38.539981   37.719848   38.156416  9.941683e+06
min     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+07
max    204.830000  206.200000  202.800000  205.220000  9.704593e+07

再来打印最新的三条信息

print(prices.tail(3))
              Open    High     Low   Close    Volume
Date                                                
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为基础封装的金融数据分析的库,对于量化交易十分有用,通过可视化的效果能帮我们一定程度分析股市的走向。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容