一、簡介
pandas_datareader是一個開源的Python庫,可以輕鬆地從多個數據源獲取金融市場數據,包括股票、指數、固定收益、基金、貨幣、商品、貨幣對等等。使用pandas_datareader可以方便地獲取所需的金融數據,使得數據分析師能夠更加集中於分析策略、對策的創建。
二、安裝和導入
安裝pandas_datareader的方法與pip安裝其他Python庫相同:
!pip install pandas_datareader
安裝完成後,在Python腳本或Jupyter Notebook中,常用的導入方法為
import pandas_datareader as pdr
為方便使用,通常將其下列名設為“pdr”。
三、獲取歷史股票價格數據
使用pandas_datareader中的er_data.get_data_yahoo()命令,可以獲取指定時間範圍內指定證券的歷史價格數據。
import pandas_datareader as pdr
start_date = '2021/01/01'
end_date = '2021/12/31'
data = pdr.get_data_yahoo('AAPL', start_date, end_date)
print(data.head())
這將獲取Apple股票(ticker code: AAPL)的2021年1月1日至2021年12月31日的歷史股價。輸出的結果如下:
High Low ... Volume Adj Close
Date ...
2021-01-04 133.610001 126.760002 ... 143301900.0 130.814514
2021-01-05 131.740005 128.429993 ... 97664900.0 131.432465
2021-01-06 131.050003 126.379997 ... 155088000.0 126.007957
2021-01-07 131.630005 127.860001 ... 109578200.0 130.307755
2021-01-08 132.630005 130.229996 ... 105158200.0 131.432465
四、獲取月或周或日的金融數據
許多策略依賴於獲取給定周期匯總數據或具體期間的數據。例如視覺化市場技術分析將依賴於將每日價格數據轉換為周或月的OHLC數據。
pandas_datareader的get_data_yahoo()函數取一個參數interval,其中W表示周,M表示月。
import pandas_datareader as pdr
start_date = '2021/01/01'
end_date = '2021/12/31'
data = pdr.get_data_yahoo('AAPL', start_date, end_date, interval='M')
print(data.head())
這將獲取Apple股票每月的歷史股價數據。輸出的結果如下:
High Low ... Volume Adj Close
Date ...
2021-01-31 145.089996 126.260002 ... 1.465064e+09 131.2
2021-02-28 137.979996 122.230003 ... 1.236386e+09 121.2
2021-03-31 133.929993 118.860001 ... 1.383681e+09 122.1
2021-04-30 139.070007 122.769997 ... 1.429428e+09 131.5
2021-05-31 144.880005 124.849998 ... 1.117987e+09 124.6
五、獲取股票數據指標
除歷史價格數據之外,pandas_datareader還可以獲取指標數據,例如:上證綜指指數。
from pandas_datareader import data
import pandas_datareader.data as web
start_date = '2021/01/01'
end_date = '2021/12/31'
china_sse_index = web.DataReader("000001.SS", "yahoo", start_date, end_date)
print(china_sse_index.head())
這將獲取上證綜指指數的2021年1月1日至2021年12月31日的數據。輸出的結果如下:
High Low ... Volume Adj Close
Date ...
2021-01-04 3587.340088 3450.570068 ... 0.00 NaN
2021-01-05 3567.080078 3483.310059 ... 0.00 NaN
2021-01-06 3558.090088 3459.600098 ... 0.00 NaN
2021-01-07 3558.962891 3486.685059 ... 0.00 NaN
2021-01-08 3564.739990 3483.689941 ... 0.00 NaN
六、獲取其他金融數據資訊源
pandas_datareader支持多種數據源,包括亞馬遜AWS, Alpha Vantage, European Central Bank, Nasdaq等。可以使用pandas_datareader.data源獲取來自多種來源的財務數據。
例如,以下代碼可以從IEX源獲取美股的每日開盤和收盤時間。
import pandas_datareader.data as web
df = web.DataReader("^GSPC", "iex", start, end)
df.head()
七、獲取美國國債數據
使用FRED API請求可以方便地獲取財政、經濟和民意數據。 以下代碼能夠獲取美國國債的數據。
from pandas_datareader.data import FREDReader
start_date = '2021-01-01'
end_date = '2021-12-31'
ticker = 'DGS10'
fred = FREDReader(ticker, start_date, end_date)
data = fred.read().dropna()
print(data.head())
這將按日期順序獲取2021年1月1日至2021年12月31日之間的10年期美國國債收益率數據。
八、結論
pandas_datareader是一個非常方便的工具,用於在Python中獲取金融數據。無論財務分析師、量化交易員還是股票選手,都可以在獲取數據時受益。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183002.html