Maison  >  Article  >  développement back-end  >  Comment lire des données directement à partir d'une URL à l'aide de Pandas ?

Comment lire des données directement à partir d'une URL à l'aide de Pandas ?

DDD
DDDoriginal
2024-11-04 10:40:30358parcourir

How to Read Data Directly from a URL Using Pandas?

L'énigme de la lecture totale des URL

Une tâche courante dans l'analyse des données consiste à charger des données à partir d'une URL. Pandas, une bibliothèque Python populaire pour la manipulation de données, fournit une fonction read_csv qui permet de lire les données d'un fichier CSV situé dans un chemin de fichier ou en tant qu'objet semblable à un fichier. Cependant, tenter de transmettre directement une URL à read_csv peut entraîner une erreur.

Comprendre l'erreur

Pour illustrer cette erreur, considérons l'exemple fourni dans la question :

<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>

Ce code tente de récupérer le fichier CSV à partir de l'URL donnée à l'aide de la bibliothèque de requêtes, puis transmet le contenu récupéré en tant qu'objet de type fichier à read_csv. Cependant, cela générera une erreur :

Expected file path name or file-like object, got <class 'bytes'> type

Résoudre le problème

Pour résoudre cette erreur, nous devons nous assurer que nous transmettons un objet de type fichier à read_csv. En Python, il existe deux principaux types d'objets de type fichier : les fichiers texte et les fichiers binaires. L'exemple fourni dans la question transmet un tableau d'octets extrait de l'URL, qui est un fichier binaire. Read_csv attend un objet fichier texte, qui peut être obtenu en décodant le tableau d'octets :

<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>

En spécifiant le codage comme "utf-8", nous interprétons le tableau d'octets comme un fichier texte. Cela permet à read_csv de charger avec succès les données de l'URL.

Simplicité améliorée avec Pandas 0.19.2

Dans la dernière version de pandas (0.19.2), une solution plus simple est disponible. Pandas permet désormais la lecture directe à partir des 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>

Cela élimine le besoin d'opérations supplémentaires telles que la récupération du contenu et son décodage, ce qui rend le processus plus simple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn