Python 數據分析系列(4)如何以 Python 獲取 Quandl 數據?

2021年1月5日 星期二

Quandl 是一個提供世界各地非常全面的大數據在線數據庫,我們可以透過它來獲取最新最快的數據,例如指數表現,房地產數據,能源數據等等。

註冊帳號

事不宜遲,馬上註冊帳號吧。首先點擊右上角的 Sign Up 按鈕,進入註冊帳號步驟。

Quandl 的免費帳號可以讓我們通過它龐大的 Database 獲取各種數據,比如說:S&P 500 Real Price by Month

第二步就是寫入你的電子郵件帳號,以及你會怎樣使用這些數據,比如說 To inform personal investments。

第三步就是填寫兩次密碼,還有同意使用者條款。

註冊成功後,它會給你一條 API KEY,這很重要,記得保存在安全的地方。

Quandl 個人主頁

之後點擊下面的 Index,然後設置左邊的 Filters 爲 Free。

以下是 Quandl 提供的免費數據列表,非常非常多。

或者你可以使用這條鏈接:

https://www.quandl.com/search?filters=%5B%22Indexes%22%2C%22Free%22%5D

S&P 500 Ratios

這次我們會使用 S&P 500 Ratios,如果沒有聽過 S&P 500 的話,這裏我先引用一段維基百科對於它的介紹:

標準普爾500(英語:Standard & Poor's 500, S&P 500)簡稱標普500史坦普500,是一個由1957年起記錄美國股市的平均記錄,觀察範圍達美國的500家上市公司。標準普爾500指數由標準普爾道瓊斯指數(標準普爾全球控股公司控股的合資公司)開發並繼續維持。標準普爾500指數裏的500家公司都是在美國股市的兩大股票交易市場,紐約證券交易所和美國全國證券業協會行情自動傳報系統(納斯達克、NASDAQ)中有多個交易的公司。幾乎所有標準普爾中的公司都是全美最高金額買賣的500隻股票。這個股票指數由標準普爾公司創建並維護。

簡單來說就是買了 SP500,你就等同買了一部分美國公司,跟美國齊上齊落。

事不宜遲,馬上進入 S&P 500 Ratios 的頁面,免費數據包括 Dividend Yield,PE Ratio,Earnings Yield。實在太多數據了,如果第一頁沒有看到自己想要的數據的話,那麼就搜索一下吧。

https://www.quandl.com/data/MULTPL-S-P-500-Ratios

比如說我需要獲取 S&P 500 Real Price 過去數據的話,我只需要搜索 price 即可。值得注意的是,右下角的 Code 是獲取 quandl 數據必不可少的元素。

點擊 S&P 500 Real Price 之後,你可以看到這樣的界面。左邊是它從哪個 Data Product 提取出來,甚麼時候更新了,更新頻率,描述以及永久鏈接

S&P 500 historical prices. Prices are not inflation-adjusted. For inflation-adjusted comparison, see Inflation Adjusted S&P 500. Other than the current price, all prices are monthly average closing prices. Sources: Standard & Poor's Robert Shiller and his book Irrational Exuberance for historic S&P 500 prices, and historic CPIs.

我們也可以選取某個時間片段,比如說最近五年,最近三年。

右邊的是 Quandl Code,也是我們需要的寶物。這裏就貼一下吧:

MULTPL/SP500_REAL_PRICE_MONTH

以 Python 獲取 Quandl 數據

在獲取數據之前,先安裝 quandl 套件,然後引用它。

!pip install quandl

import quandl

接着我們點擊 Quandl 頁面右方的 Export Data 下面的 Python 按鈕,就可以得到一句如何使用這個數據的 Code,直接複製就可以了。

df = quandl.get("MULTPL/SP500_REAL_PRICE_MONTH", authtoken=authtoken)

這個時候我們可以看一下導入了甚麼數據。

df.info()

哦,是 1871年1月1日到 2020年12月31日的數據,而且 quandl 都把 index 設置爲 DatatimeIndex,意思即是可以直接進行日期運算的處理,我們先看一下頭五個數據。

df.head()

要得出圖表的話,直接用下面 Code 就可以了。

df.plot()

One More Thing

有個小朋友問我,能不能截取過去十年數據,我不要上百年數據。答案是可以:

df['2010':]

Plot 圖表的話就是這樣:

後記

筆者沒有追海賊王的系列,但是最爲記憶深刻的就是這一句說話:想要我的財富嗎?可以的。。。我把世界上的財富都放在那裏,你們去尋找吧!現在想來,其實財富就已經放了在大數據洪流裏面,只要我一步一步成長,財務自由的日子不遠矣。

感謝各位閱讀 Python 數據分析系列文章,有用的話記得分享。

接下來會分享如何使用 numpy,pandas 以及 matplotlib 等 Python 數據分析工具,敬請期待。

留言

Leave a Comment

必要欄位爲*。留言所填寫的電子郵件地址不會公開。

Kepler Finance

當 Python 遇上 Finance,它們將會帶來超乎想像的威力。

訂閱 Kepler Finance 最新文章

昔日手記

免責聲明

本博客純屬個人意見或經驗分享,無論在任何情況下,不應被視為投資建議,也不構成要約、招攬、邀請、誘使、建議或推薦。投資(機)者應注意投資涉及風險。股票價格可升可跌,有時可能會非常波動,甚至變成毫無價值。買賣證券未必一定能夠賺取利潤,反而可能會招致損失。