更多精選新手系列:
- 新手 1/3:5 分鐘免安裝學習 Python?Google Colab Notebook 幫緊您!
- 新手 2/3:如何用 Google Colab 製做互動表格和圖表?快來學 Import library/Jupyter
上回詳盡介紹了免安裝的網上工具 Google Colab Notebook 是新手學習 Python 的最佳選擇,有興趣了解如何使用可以點這裡。
這次,我們希望延伸 Google Colab Notebook 的功能至讀取/寫出(I/O)檔案。I/O 是 Python 重要的一環,尤其是我們使用 Python 分析數據時,更需要懂得匯入原始數據以及輸出成統計結果。
作為 Python 新手,我們以 Google Colab Notebook 為我們的起跑點,學習 Google Colab Notebook 讀取 Google Drive 的數據吧!
目的
在上一篇文章裡,我們透過 pandas_datareader
的 Library 讀取歷史股票價格,並輸出成 2 張漂亮而具互動性(Interactive)的圖表。
這次,我們保留上一篇文章的框架,但作出以下改變,以學習使用 Google Colab Notebook 讀取/輸出檔案:
- 使用一個在 Google Drive 裡的 CSV 檔案取代
pandas_datareader
- 匯出圖表至 Google Drive
CSV 檔
CSV 檔是一個常見的數據檔案類型,全名是 Comma-Separated Values。CSV檔案就像一個 Excel 的試算表,只不過每一行(Row)皆由一串逗號分隔的數據組成,例如「蘋果,Apple,生果,甜,紅色」就是一行 CSV 的數據。
CSV 檔與 Python 可謂是一拍即合,許多 Python 應用都會以讀取一個原始(Raw)的 CSV 檔案開始,並以寫出一個經過處理(Transform)的 CSV 結束。
從 Yahoo! Finance 下載 CSV 檔案
在 Yahoo! Finance 網頁,我們可以找到下載免費的股票歷史價格 CSV 檔案連結。教程開始前,請先按以下連結下載 0005.HK 的股票數據:
您可能感興趣:yfinance 攻略!Python 下載股票價格數據無難度
上傳到 Google Drive
下載了 CSV 檔案後,請到 Google Drive 建立新的資料夾,並命名為「CSV 原始檔」。
建立了資料夾後,把剛才下載的 CSV(檔案名稱是 0005.HK.csv)上傳到 Google Drive 的「CSV 原始檔」文件夾裡。
現在我們來看看如何在 Google Colab Notebook 讀取這個檔案。
在 Google Colab 連結 Google Drive
from google.colab import drive drive.mount('/content/drive')
現在我們開啟一個新的 Google Colab Notebook 並貼上這 2 行程式碼。按了播放鍵(Play)以後,您應該會見到以下的提示:
我們把 Google Drive 連結到這個 Google Colab Notebook 裡,就如把一隻 USB 手指插入電腦一樣,我們可以任意更改 Google Drive 的文件。所以 Google 提醒我們是否希望這個 Google Colab Notebook 存取 Google Drive 裡的文件。記得不要 run 來歷不明的 Notebook!
按下「Connect to Google Drive」後,會彈出一下的頁面。請選擇自己的 Google 帳戶並按「Allow」。
成功後,會見到 Code Block 輸出「Mounted at /content/drive」的信息。在螢幕右方的 “Files”(下面的右圖),亦可以點選「drive/MyDrive/CSV 原始檔」,即可找到我們先前上傳的 0005.HK.csv!
現在我們可以把 Google Drive 當成系統位置(System Path)使用。
在 Google Colab 讀取 CSV
匯入所需 Library
開始以前,我們先匯入一些待會需要使用的 Python Library。與上次的例子唯一不同的,是我們直接匯入 pandas
而不是 pandas_datareader
。
Pandas 是直接進行數據處理(Data Transformation)的基石 Library 之一。我們會以 Pandas 的 CSV 讀取功能直接存取 Google Drive 裡面的 0005.HK.csv。
讀取 CSV
data = pd.read_csv('/content/drive/MyDrive/CSV 原始檔/0005.HK.csv') print(data)
短短的一行程式碼便能在 Google Drive 讀取到 CSV。pd.read_csv()
將會是您的 Python 編碼中非常重要的夥伴。
由於我們先前已經將 Google Drive 的位置定義成「/content/drive」(詳見上面的編程),所以我們引用的系統位置是上圖的格式。小提示:您也可以在左面的 Files 找出檔案的位置,不用記下每個檔案的名稱。
整合數據(月份)
我們把 CSV 匯出前,先作一些數據的整理。Python 的 Library 使數據整理非常簡單,這也是 Python 其中一個普及的原因。
data['Date'] = pd.to_datetime(data['Date']) output = data.set_index('Date').tail(255) output = output.groupby(pd.Grouper(freq='M'))['Adj Close'].agg( ['first','max','min','last','mean','median','std'] ) output.columns = ['Open','High','Low','Close','Avg','Median','SD'] pd.set_option('display.max_columns', None) print(output)
現在我們希望輸出一個每月的 0005.HK 報告,內容是有關對上 1 年的股價走勢,例如月份開市價(Open)、最高價(High)、最低價(Low)、收市價(Close)、平均價(Average)、中位價(Median)和標準差(Standard Deviation)。
有興趣如何使用 pd.Groupby()
完成以上的編程可以按此,但完成以上的程式碼後,我們提取到 output 這一個變數。這個 Pandas Dataframe 會是我們匯出 CSV 的來源。
匯出 CSV 到 Google Drive
output.to_csv('/content/drive/MyDrive/Report_of_0005.HK.csv')
最後一步十分簡單。我們把剛才的 output 變數(是一個 Pandas Dataframe) 以 to_csv 的方法寫成 CSV 檔案,並儲存到「/content/drive/MyDrive/」裡。
完成後,您會見到 Google Drive 裡多了一個檔案,就是我們的「Report_of_0005.HK.csv」!其內容就是我們的月報告。
完整範例
如果您想下載完成的編程檔,可以在下面按一下 Open in Colab 直接在您個人的 Google Colab Notebook 運行。
恭喜您已經完成基本的 Google Colab Notebook Python 編程訓練!希望您學到一點 Python 編程的技巧!
接下來我們會介紹適合中高手使用的 Visual Studio Code,記得留意詳情喔。
其他相關文章: