新手 3/3:如何用 Google Colab 讀取/輸出檔案?從 Google Drive 存取 CSV
更多精選新手系列:
上回詳盡介紹了免安裝的網上工具 Google Colab Notebook 是新手學習 Python 的最佳選擇,有興趣了解如何使用可以點這裡。
這次,我們希望延伸 Google Colab Notebook 的功能至讀取/寫出(I/O)檔案。I/O 是 Python 重要的一環,尤其是我們使用 Python 分析數據時,更需要懂得匯入原始數據以及輸出成統計結果。
作為 Python 新手,我們以 Google Colab Notebook 為我們的起跑點,學習 Google Colab Notebook 讀取 Google Drive 的數據吧!
目的
在上一篇文章裡,我們透過
pandas_datareader
pandas_datareader
的 Library 讀取歷史股票價格,並輸出成 2 張漂亮而具互動性(Interactive)的圖表。
這次,我們保留上一篇文章的框架,但作出以下改變,以學習使用 Google Colab Notebook 讀取/輸出檔案:
- 使用一個在 Google Drive 裡的 CSV 檔案取代
pandas_datareader
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’)
from google.colab import drive drive.mount('/content/drive')
現在我們開啟一個新的 Google Colab Notebook 並貼上這 2 行程式碼。按了播放鍵(Play)以後,您應該會見到「Go to this URL in a browser」的提示。
按一下 URL,瀏覽器會出現一個 Google Login 的頁面,按以下允許使用即可。成功後,頁面會出現一組很長的代碼,把它複製,並貼上 Google Colab Notebook 「Enter your authorization code」下的方框即可。
成功後,會見到 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
而不是
pandas_datareader
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)
data = pd.read_csv('/content/drive/MyDrive/CSV 原始檔/0005.HK.csv') print(data)
短短的一行程式碼便能在 Google Drive 讀取到 CSV。
pd.read_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)
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()
pd.Groupby()
完成以上的編程可以按此,但完成以上的程式碼後,我們提取到 output 這一個變數。這個 Pandas Dataframe 會是我們匯出 CSV 的來源。
匯出 CSV 到 Google Drive
output.to_csv(‘/content/drive/MyDrive/Report_of_0005.HK.csv’)
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,記得留意詳情喔。
其他相關文章: