首頁  >  文章  >  後端開發  >  如何使用 Pandas 直接從 URL 讀取資料?

如何使用 Pandas 直接從 URL 讀取資料?

DDD
DDD原創
2024-11-04 10:40:30358瀏覽

How to Read Data Directly from a URL Using Pandas?

讀取全部 URL 難題

資料分析中的一項常見任務是從 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 (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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn