Maison > Article > développement back-end > Comment lire des données directement à partir d'une URL à l'aide de Pandas ?
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.
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
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.
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!