Heim >Backend-Entwicklung >Python-Tutorial >Wie lese ich mit Pandas Daten direkt von einer URL?
Eine häufige Aufgabe bei der Datenanalyse besteht darin, Daten von einer URL zu laden. Pandas, eine beliebte Python-Bibliothek zur Datenbearbeitung, bietet eine read_csv-Funktion, die es ermöglicht, Daten aus einer CSV-Datei zu lesen, die sich in einem Dateipfad oder als dateiähnliches Objekt befindet. Der Versuch, eine URL direkt an read_csv zu übergeben, kann jedoch zu einem Fehler führen.
Um diesen Fehler zu veranschaulichen, betrachten wir das Beispiel in der Frage:
<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>
Dieser Code versucht, die CSV-Datei mithilfe der Anforderungsbibliothek von der angegebenen URL abzurufen und den abgerufenen Inhalt dann als dateiähnliches Objekt an zu übergeben read_csv. Dies führt jedoch zu einem Fehler:
Expected file path name or file-like object, got <class 'bytes'> type
Um diesen Fehler zu beheben, müssen wir sicherstellen, dass wir ein dateiähnliches Objekt an read_csv übergeben. In Python gibt es zwei Haupttypen dateiähnlicher Objekte: Textdateien und Binärdateien. Das in der Frage bereitgestellte Beispiel übergibt ein von der URL abgerufenes Byte-Array, bei dem es sich um eine Binärdatei handelt. Read_csv erwartet ein Textdateiobjekt, das durch Dekodierung des Byte-Arrays erhalten werden kann:
<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>
Indem wir die Kodierung als „utf-8“ angeben, interpretieren wir das Byte-Array als Textdatei. Dadurch kann read_csv die Daten erfolgreich von der URL laden.
In der neuesten Version von Pandas (0.19.2) ist eine einfachere Lösung verfügbar. Pandas ermöglicht jetzt das direkte Lesen von URLs:
<code class="python">import pandas as pd url = "https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv" c = pd.read_csv(url)</code>
Dadurch entfallen zusätzliche Vorgänge wie das Abrufen des Inhalts und dessen Dekodierung, was den Prozess einfacher macht.
Das obige ist der detaillierte Inhalt vonWie lese ich mit Pandas Daten direkt von einer URL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!