資料分析中的一項常見任務是從 URL 載入資料。 Pandas 是一種流行的用於資料操作的 Python 庫,它提供了 read_csv 函數,允許人們從位於檔案路徑中的 CSV 檔案或作為類似檔案的物件讀取資料。但是,嘗試直接將 URL 傳遞給 read_csv 可能會導致錯誤。
為了演示此錯誤,讓我們考慮問題中提供的範例:
<code class="python">import pandas as pd import requests url = "https://github.com/cs109/2014_data/blob/master/countries.csv" s = requests.get(url).content c = pd.read_csv(s)</code>
此程式碼嘗試使用requests 庫從給定URL 檢索CSV 檔案,然後將檢索到的內容作為類似文件的物件傳遞給read_csv。但是,這會引發錯誤:
Expected file path name or file-like object, got <class 'bytes'> type
要解決此錯誤,我們需要確保將類似文件的物件傳遞給 read_csv。在Python中,類別文件物件主要有兩種類型:文字檔和二進位。問題中提供的範例傳遞從 URL 檢索的位元組數組,這是一個二進位檔案。 Read_csv 需要一個文字檔案對象,可以透過解碼位元組數組來獲得該對象:
<code class="python">import pandas as pd url = "https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv" c = pd.read_csv(url, encoding="utf-8")</code>
透過將編碼指定為“utf-8”,我們將位元組數組解釋為文字檔案。這使得 read_csv 能夠成功地從 URL 載入資料。
在最新版本的 pandas (0.19.2) 中,有一個更簡單的解決方案。 Pandas 現在允許直接從 URL 讀取:
<code class="python">import pandas as pd url = "https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv" c = pd.read_csv(url)</code>
這消除了檢索內容和解碼等額外操作的需要,使過程更加簡單。
以上是如何使用 Pandas 直接從 URL 讀取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!