pandas-datareader背景介绍
当熟悉了Pandas的两个主要数据结构:Series和DataFrame之后,我们就可以使用pandas-datareader进行金融财经数据的导入和初步分析了。pandas-datareader是基于Python的专门从一系列的公开在线数据库获取数据的工具库,该接口在urllib3库基础上实现了以客户端身份访问在线数据库的各类金融财经股票数据。
相关参考网站
安装
pandas-datareader可以使用标准的pip进行安装
pip install pandas-datareader
安装完成之后可以使用如下代码检查datareader是否工作正常
import pandas_datareader as pdr
pdr.get_data_fred('GS10')
使用pandas-datareader读取经济数据
pandas-datareader支持如下金融、财经各类在线数据库,这些数据库提供各类财经历史数据,有的数据库甚至提供实时数据。访问某些在线数据库需要APIKEY,比如Tiingo、IEX。
现在以Econdb为例展示如何从Econdb获取中国从2000到2019年的主要指标,进行数据分析。基础代码如下:
import os
import pandas_datareader as web
import pandas as gdp
import datetime as datetime
#设定经济指标为GDP,国家为中国
gdpquery = 'ticker=GDPCN'
#设定开始结束时间
start = datetime.datetime(2000,1,1)
end = datetime.datetime(2020,12,1)
#取得中国GDP数据
gdpcn = web.DataReader(gdpquery, 'econdb',start=start,end=end)
数据分析
数据分析之前要对数据进行归并整理,对数据进行验证
查看DataFrame数据前5行和尾部倒数5行
print(gdpcn)
Subcategory Gross Domestic Product, Current Quarter
TIME_PERIOD
2000-01-01 21330
2000-04-01 24043
2000-07-01 25712
2000-10-01 29194
2001-01-01 24086
... ...
2019-07-01 252209
2019-10-01 278020
2020-01-01 206504
2020-04-01 250110
2020-07-01 266172
查看DataFrame数据索引和列名
print(gdpcn.index)
print(gdpcn.columns)
查看DataFrame数据的完整情况
print(gdpcn.info())
查看DataFrame数据的统计值
print(gdpcn.describe())
同样的方法取得美国GDP数据
gdpquery = 'ticker=GDPUS'
gdpus = web.DataReader(gdpquery, 'econdb',start=start,end=end)
可视化展示
得到两国GDP基础数据后,可以将两国GDP数据绘制趋势图进行对比,需要将两个gdp数据的dataframe复合到同一个data frame中,然后调用matplotlib进行绘图。
#处理gdp数据dataframe的columns名称
gdpcn.columns =['China PRC']
gdpus.columns = gdpus.columns.get_level_values(1)
#合并美国中国的GDP数据,on "TIME_PERIOD" column.
pd = pd.merge(gdpcn, gdpus, on='TIME_PERIOD')
pd.plot(grid=True)
plt.show()
后面可以使用pandas的to_csv方法将dataframe对象写入到文件中。