使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

自從2019年底亞洲出現疫情以來,冠狀病毒COVID-19的大流行造成了毀滅性的影響。該病毒傳播到了大多數國家,引發嚴重的呼吸道感染並造成了大量人員死亡。該病毒還使全世界一半的人口處於居家隔離狀態,這導致世界經濟下滑和股票價格下跌。

本教程的目的是介紹如何收集和分析新冠大流行期間的股票數據。為此,我們將用到Python,Google Sheets和Google Finance。

在本教程的第2節中,我們將介紹如何配置Google Sheets,以便能讓Python與Google Sheets進行交互。在第3節中,我們將介紹如何使用Google Finance收集股票數據,以及如何使用Python將這些數據存儲在Google Sheets中。在第4節中,我們將介紹如何從Google Sheets中讀取數據並使用Python和Pandas對其進行分析。

本教程的源代碼可以在這個github庫(https://github.com/adilmoujahid/coronavirus-covid19-stocks-analysis)中找到。

1.案例研究

在本教程中,我們將重點介紹S&P 500強的公司。我們要收集以下數據:

  • 3個不同日期(1月1日,3月23日和4月9日)的股票價格

  • 每家公司發行的股票數量

  • 公司運營的行業/領域(按照GICS分類系統)

在收集和整理完數據後,我們將使用Python和Pandas庫來分析數據。

2.技術支持

我們將使用以下服務和庫來收集和分析數據:

  • 維基百科:我們將使用這個維基百科網頁(https://en.wikipedia.org/wiki/List_of_S%26P_500_companies)獲取S&P 500強公司的列表。

  • Google Finance:Google Finance是一個Google管理的專注於商業新聞和財務信息的網站[1]。Google Finance沒有可以直接在Python中使用的API,但是我們可以使用名為GOOGLEFINANCE的公式,從Google Sheets中訪問它。我們將使用Python來寫入GOOGLEFINANCE的公式。

  • Goole Sheets:我們將使用Google Sheets作為後端來存儲股票數據。為了直接讓Python與Google Sheets進行交互,我們需要3個庫:Google Auth,gspread和gspread-pandas。我們還需要配置Google Sheets,使其能夠使用Python訪問電子表格。

  • Python,Jupyter Notebook和Pandas:我們將使用Python,Jupyter Notebook和Pandas來收集,存儲和分析數據。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

2.1.在GCP中配置Google Sheets

為了通過Python訪問Google Sheets,我們需要來自Google雲計算服務(GCP)的密鑰,我們可以使用以下步驟獲取密鑰。

步驟1:轉到Google雲計算服務(https://cloud.google.com/),使用您的Google帳戶登錄,然後點擊Console。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

步驟2:依次點擊Select a project→NEW PROJECT,輸入項目名稱,然後點擊CREATE

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

步驟3:依次點擊APIs & Services→Dashboard→ENABLE APIS AND SEVICES。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

步驟4:同時搜索Google Drive API和Google Sheets API,然後點擊ENABLE

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

步驟5:在Google Sheets API頁面中,依次點擊MANAGE→CREATE CREDENTIALS,然後選擇Google Sheets API。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

步驟6:選擇Web sever和Application data,然後API密鑰選擇JSON格式。點擊Continue,用JSON格式下載您的密鑰。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

步驟7:下載JSON文件後,將其保存在Jupyter Notebook所在的文件夾中,並複製client_email的信息。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

2.2.Google Sheets的配置

最後,我們需要創建一個新的Google Sheets,並讓它與上一步創建的client_email進行共享。打開Google Driver,創建一個新的Google Sheets,將其名稱改為“stocks-data”。點擊Share按鈕,輸入client_email,然後點擊Send。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

3.收集和存儲股票數據

現在我們已經配置好了Google Sheets,那麼可以開始使用Python和Jupyter Notebook收集數據了。我們首先導入需要的庫。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

從維基百科獲取S&P 500強公司的名單

作為數據收集的第一步,我們需要獲取S&P 500強公司名單。為此,我們將使用下面的維基網頁:https://en.wikipedia.org/wiki/List_of_S%26P_500_companies

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

幸運的是,我們可以用Pandas來讀取頁面,提取S&P 500強公司的表格,並將它們存儲到Pandas的Dataframe中。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

我們需要的最重要的數據是:

  • 代號:股票代號

  • 證券:公司名稱

  • GICS行業:公司遵循全球行業分類標準(GICS)經營的行業。

  • GICS子行業:公司遵循全球行業分類標準(GICS)經營的子行業。

我們可以開始查看一些數據,例如列表中的公司數量。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

我們獲取的公司有505家,而不是500家。這是因為有些公司具有雙重股權結構,並且在列表中被多次列出。我們可以在其證券名稱中通過搜索關鍵詞“Class”來獲得這些公司的列表。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

列表中有10傢俱有雙重結構的公司。如果考慮到這一點,我們可以知道列表中有500家唯一的公司。

我們還可以按行業和子行業查看公司的數量。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

從Google Finance獲取股票數據

現在我們有了S&P 500強公司的列表,我們可以在DataFrame中添加Google Sheets的公式,這些公式將從Google Finance中獲取每家公司的股價和發行的股票數。請注意,一旦將Pandas的DataFrame保存在Google Sheets中,這些公式就會執行。

您可以在這裡找到GOOGLEFINANCE公式的介紹:https : //support.google.com/docs/answer/3093281

我們首先獲取3個不同日期的股價:1月1日,3月23日和4月9日:

  • 2020年1月1日是今年的第一個日子。我們獲取這個價格的目的是計算自2020年開始以來的股價下跌。

  • S&P 500強公司在2020年抄底的日期是2020年3月23日。

  • 2020年4月9日是股票市場開放的最後日期(撰寫本文時)

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

接下來,我們添加公式以計算每個公司發行股票的數量。我們可以將此數據與股票價格放在一起,以計算公司在3個不同日期的市值。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

用Google Sheet存儲DataFrame

我們首先創建一個變量,該變量包含從Google雲計算服務獲得的證書。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

接下來,我們在稱為spread的變量中讀取空的Google Sheet。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

我們定義了要保留的變量列表。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

最後一步是將DataFrame保存到Google Sheets中。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

如果我們轉到Google Sheet,則可以看到數據已經被正確存儲。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

4.分析數據

4.1.讀取數據

我們首先從Google Sheets中讀取數據,放到一個新的DataFrame中。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

我們可以看到DataFrame包含股票價格和股票數量的實際值(而不是Google Sheets公式)。

我們需要將股票價格和已發行股票數的數據類型由string改成numeric。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

4.2.加入市值數據和股票價格的百分比變化

加入市值數據

接下來,我們將添加3個不同日期的市值。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

加入股票價格的百分比變化

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

4.3.分析數據

S&P 500強公司總市值的變化

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

S&P 500強公司從1月1日到3月23日損失了8.7萬億美元,但從3月23日到4月9日卻損失了4.6萬億美元。

各行業總市值的變化

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

在2020年S&P 500強公司抄底的那一天(3月23日),信息技術和金融領域的總市值降幅最大(與1月1日相比),分別為1.592萬億和1.518萬億美元。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

截至4月9日,與1月1日相比,金融和工業領域的總市值跌幅最大。

按股票價格百分比變動對公司進行排序

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

從上表我們可以看到,受害最嚴重的公司是三大郵輪公司:挪威郵輪公司,嘉年華公司,皇家加勒比郵輪公司。這些公司的股價下跌了70%以上。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

從1月1日到4月9日,505只股票中只有56只出現了正增長。

按行業分類的股票價格百分比變化

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

我們可以看到,能源股受到的衝擊最大,股價平均下跌了49.8%。

在下面,我們可以直觀地看到從1月1日到4月9日這11個行業的股價百分比變化的箱線圖。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

如果我們查看各子行業的平均股價變化百分比;我們可以看到,與旅遊相關的行業、石油和天然氣以及百貨商店受到的打擊最大。138個子行業中,有118個的平均股價在1月1日到4月9日下降。

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

按行業分類的股票價格百分比變化(從3月23日至4月9日)

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

按子行業分類的股票價格百分比變化(從3月23日至4月9日)

使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響

從3月23日到4月9日,所有行業和子行業(食品零售除外)的平均股價均上漲。

結論

在本教程中,我們學習瞭如何使用Python,Google Sheets和Google Finance收集和分析新冠大流行背景下的股票數據。我們仍處於新冠大流行的早期階段,並且尚不清楚它對社會和經濟的中長期影響是什麼。在接下來的幾周內繼續進行此分析,看看股市能否從2020年的損失中恢復過來,這將是很有趣的。

本教程的源代碼可以在這個github庫(https://github.com/adilmoujahid/coronavirus-covid19-stocks-analysis)中找到。

參考文獻

[1] https://zh.wikipedia.org/wiki/Google_Finance

英文原文:http://adilmoujahid.com/posts/2020/04/stocks-analysis-covid19-coronavirus-python/
譯者:桃夭使用Python,Google Sheets和Google Finance分析新冠病毒對股市的影響


分享到:


相關文章: