Python 數據分析系列(3)數據分析工作流

2021年1月4日 星期一

數據分析工作流,其實就是如何可以更好地利用現有條件,整合並從中提煉價值出來,然後不斷利用它來更新自己的一個過程。與其說沒有條件,倒不如說我們應該如何在 2021年的大數據洪流中正視源源不斷的數據,怎樣從中提煉戰勝大市的策略,這才是真正的價值。接下來我會分析數據分析工作流以及我們可以如何一步一步以 Python 提煉屬於自己的低成本投資策略。

筆者選用 Python 的原因很簡單,因爲 Python 的套件都很齊全,而且學習成本非常低。Python 的生態系統非常完善,從一開始獲取數據需要的爬蟲工具,到分析數據需要用的 NumPy Pandas,再到製作圖表的工具 Matplotlib,這些都一應俱全。

獲取數據

Quandl 是一間號稱金融數據界的維基百科,我們可以透過它獲取來自不同數據來源,非常方便。

https://www.quandl.com/data/MULTPL/SP500_PE_RATIO_MONTH-S-P-500-PE-Ratio-by-Month

舉個例子,Quandl 有提供由 1870年到現在的一系列關於 S&P 500 各種 Ratio 的數據。

假設是想獲取 S&P 500 的 PE Ratio,Quandl 就有提供,Code 爲 MULTPL/SP500PERATIO_MONTH

https://www.quandl.com/data/MULTPL/SP500_PE_RATIO_MONTH-S-P-500-PE-Ratio-by-Month

獲取 Code 之後,只需要一句:

quandl.get("MULTPL/SP500_PE_RATIO_MONTH")

即可獲得完整的 SP500 PE RATIO MONTH 數據。

處理數據

當我們從不同途徑獲取數據之後,我們就可能先需要把這些數據進行整合,拆解。比如說我們可以利用 numpy 和 pandas 來先排除無用數據(dropna),或者是進行數據類型轉換(str -> float, astype)

提煉精華

在處理好數據之後,我們就需要從不同層面分析這些數據的分佈,趨勢,從而發現超越大市的決策。比如說我們可以利用 matplotlib 來展示數據,然後畫出他們的趨勢,或者是發現它與其他圖表不一樣的地方。

比如說我們可以 Plot 出蘋果公司(AAPL)2014年到2018年的收市價格。非常簡單。

輸出結果

當我們做好前面的步驟之後,當然想要做到寫一次,不斷重複的效果。我們可以利用 Python 寫出自己的 Server,然後簡單的發送 GET 請求過去即可。筆者日常在用 Postman 以及 fastapi。

FastAPI 是一個製作 Python Web Server 用的一個框架,用起來解決了很多處理數據的步驟,輕鬆。

Postman 則是我們在調試 Server API 時,經常用來發送 web 請求的工具。

後記

一步一步,按部就班,再複雜的問題也可以用很簡單的方法去解決。透過系統性的分析,拆解問題,遇到類似的問題便可以套用同樣的分析思維,然後在短時間內得出結果。這些正是 Python 數據分析系列希望達到的其中一個效果。

接下來我將會在這裏以及 Kepler Finance Channel 即時發佈最新文章。到時候會按每一個步驟仔細展開來介紹,敬請期待。

留言

Leave a Comment

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

Kepler Finance

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

訂閱 Kepler Finance 最新文章

昔日手記

免責聲明

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