一、初识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 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 pdimport pandas_datareader.data as web#绘图使用import
matplotlib.pyplotas 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为基础封装的金融数据分析的库,对于量化交易十分有用,通过可视化的效果能帮我们一定程度分析股市的走向。

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信