本文介紹如何使用 Python 從互聯(lián)網(wǎng)下載金融相關(guān)的數(shù)據(jù)卦睹,包括股票數(shù)據(jù)捻激、經(jīng)濟數(shù)據(jù)等盒揉。這里進行數(shù)據(jù)獲取的Python包有以下兩種:
如果未安裝過這兩個Python包盗冷,可以在命令行中輸入以下代碼進行安裝:
pip install quandl
pip install pandas-datareader
獲取股票數(shù)據(jù)
使用 quandl 包
import quandl
quandl.get(dataset, start_date, end_date)
- dataset:數(shù)據(jù)集的 quandl 代碼
- start_date: 起始日期
- end_date: 結(jié)束日期
首先需要設(shè)置獲取數(shù)據(jù)的日期范圍,這里采用日期時間格式得封,導(dǎo)入 datetime
包埋心。
# 時間范圍:2017年1月1日至今
from datetime import date
start = date(2017,1,1)
end = date.today()
然后導(dǎo)入 quandl
包,使用 quandl.get()
函數(shù)獲取蘋果公司從2017年至今的股票數(shù)據(jù)(quandl代碼:WIKI/AAPL)忙上。
import quandl
apple = quandl.get("WIKI/AAPL", start_date=start, end_date=end)
查看數(shù)據(jù)的前五行和后五行拷呆。
apple.head()
apple.tail()
注意到這里只獲取到了2018年3月27日的數(shù)據(jù),如果要取得實時數(shù)據(jù)疫粥,需要注冊 quandl 的賬號獲取 API key 授權(quán)茬斧。
比如獲取最近5天的蘋果股票數(shù)據(jù)(這里quandl代碼為 EOD/AAPL)。
quandl.ApiConfig.api_key = "你的key"
quandl.get("EOD/AAPL", rows=5)
繪制股票收盤價的時間序列圖手形。
import matplotlib.pyplot as plt
apple['Close'].plot()
plt.show()
獲取經(jīng)濟數(shù)據(jù)
pandas_datareader 包提供豐富多樣的數(shù)據(jù)集下載啥供,其使用方法如下:
使用 pandas_datareader 包
from pandas_datareader.data import DataReader
DataReader(name, data_source, start, end)
- name: 數(shù)據(jù)集的名稱
- data_source: 數(shù)據(jù)源
- start: 起始日期
- end: 結(jié)束日期
它有許多數(shù)據(jù)源可以選擇,這里以美聯(lián)儲經(jīng)濟數(shù)據(jù)(FRED)為例库糠,查看歷年來黃金價格的情況伙狐。因為采用FRED數(shù)據(jù),所以data_source 設(shè)為 'fred'瞬欧。另外還需要知道黃金價格的數(shù)據(jù)集名稱贷屎,我們首先登錄 FRED 官網(wǎng),在站內(nèi)搜索 gold price艘虎,找到相應(yīng)的數(shù)據(jù)集唉侄,下圖中紅框圈出的就是黃金價格的數(shù)據(jù)集名稱 'GOLDAMGBD228NLBM'。
萬事具備野建,現(xiàn)在就讓我們來獲取1968年以來的黃金價格數(shù)據(jù)属划。
from pandas_datareader.data import DataReader
# 設(shè)置起始時間
start = date(1968,1,1)
# 設(shè)置黃金價格數(shù)據(jù)集名稱
name = 'GOLDAMGBD228NLBM'
# 設(shè)置數(shù)據(jù)源
source = 'fred'
# 從fred獲取黃金價格數(shù)據(jù)
gold_price = DataReader(name, source, start)
輸出該數(shù)據(jù)的摘要信息如下,它一共有13196條記錄候生,從1968年4月1日到2018年10月29日同眯。
gold_price.info()
<class 'pandas.core.frame.DataFrame'>
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()
注:本文是 DataCamp 課程 Importing & Managing Financial Data in Python
的學(xué)習(xí)筆記唯鸭。更多該課程的更多筆記: