如何用Python下载金融数据 —— 带着Python玩金融(8)

本文介绍如何使用 Python 从互联网下载金融相关的数据,包括股票数据、经济数据等。这里进行数据获取的Python包有以下两种:

  • quandl
  • pandas_datareader

如果未安装过这两个Python包,可以在命令行中输入以下代码进行安装:

pip install quandl
pip install pandas-datareader

获取股票数据

使用 quandl 包 import quandl

quandl.get(dataset, start_date, end_date)

  • dataset:数据集的 quandl 代码
  • start_date: 起始日期
  • end_date: 结束日期

首先需要设置获取数据的日期范围,这里采用日期时间格式,导入 datetime 包。

# 时间范围:2017年1月1日至今
from datetime import date  
start = date(2017,1,1)
end = date.today()

然后导入 quandl 包,使用 quandl.get() 函数获取苹果公司从2017年至今的股票数据(quandl代码:WIKI/AAPL)。

import quandl
apple = quandl.get("WIKI/AAPL", start_date=start, end_date=end)

查看数据的前五行和后五行。

apple.head()
如何用Python下载金融数据 —— 带着Python玩金融(8)_第1张图片
apple.tail()
如何用Python下载金融数据 —— 带着Python玩金融(8)_第2张图片

注意到这里只获取到了2018年3月27日的数据,如果要取得实时数据,需要注册 quandl 的账号获取 API key 授权。

比如获取最近5天的苹果股票数据(这里quandl代码为 EOD/AAPL)。

quandl.ApiConfig.api_key = "你的key"
quandl.get("EOD/AAPL", rows=5)
如何用Python下载金融数据 —— 带着Python玩金融(8)_第3张图片

绘制股票收盘价的时间序列图。

import matplotlib.pyplot as plt
apple['Close'].plot()
plt.show()
如何用Python下载金融数据 —— 带着Python玩金融(8)_第4张图片

获取经济数据

pandas_datareader 包提供丰富多样的数据集下载,其使用方法如下:

使用 pandas_datareader 包 from pandas_datareader.data import DataReader

DataReader(name, data_source, start, end)

  • name: 数据集的名称
  • data_source: 数据源
  • start: 起始日期
  • end: 结束日期

它有许多数据源可以选择,这里以美联储经济数据(FRED)为例,查看历年来黄金价格的情况。因为采用FRED数据,所以data_source 设为 'fred'。另外还需要知道黄金价格的数据集名称,我们首先登录 FRED 官网,在站内搜索 gold price,找到相应的数据集,下图中红框圈出的就是黄金价格的数据集名称 'GOLDAMGBD228NLBM'。

如何用Python下载金融数据 —— 带着Python玩金融(8)_第5张图片

万事具备,现在就让我们来获取1968年以来的黄金价格数据。

from pandas_datareader.data import DataReader

# 设置起始时间
start = date(1968,1,1)

# 设置黄金价格数据集名称
name = 'GOLDAMGBD228NLBM'

# 设置数据源
source = 'fred'

# 从fred获取黄金价格数据
gold_price = DataReader(name, source, start)

输出该数据的摘要信息如下,它一共有13196条记录,从1968年4月1日到2018年10月29日。

gold_price.info()

DatetimeIndex: 13196 entries, 1968-04-01 to 2018-10-29
Data columns (total 1 columns):
GOLDAMGBD228NLBM    12790 non-null float64
dtypes: float64(1)
memory usage: 206.2 KB

绘制黄金价格随时间变化的图。

gold_price.plot(title='Gold Price')
plt.show()
如何用Python下载金融数据 —— 带着Python玩金融(8)_第6张图片

注:本文是 DataCamp 课程 Importing & Managing Financial Data in Python
的学习笔记。更多该课程的更多笔记:

  • 如何用 pandas 读取 csv 和 Excel 数据

你可能感兴趣的:(如何用Python下载金融数据 —— 带着Python玩金融(8))