Saltar al contenido

Pandas read_csv de la URL

Solución:

En la última versión de pandas (0.19.2) puede pasar directamente la URL

import pandas as pd

url="https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv"
c=pd.read_csv(url)

ACTUALIZACIÓN: De pandas 0.19.2 ahora puedes solo aprobar read_csv() la URL directamente, aunque eso fallará si requiere autenticación.


Para versiones antiguas de pandas, o si necesita autenticación, o por cualquier otro motivo de tolerancia a fallos HTTP:

Usar pandas.read_csv con un objeto similar a un archivo como primer argumento.

  • Si desea leer el csv de una cadena, puede usar io.StringIO.

  • Para la URL https://github.com/cs109/2014_data/blob/master/countries.csv, usted obtiene html respuesta, no crudo csv; debe utilizar la URL proporcionada por el Raw enlace en la página de github para obtener una respuesta csv sin procesar, que es https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv

Ejemplo:

import pandas as pd
import io
import requests
url="https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv"
s=requests.get(url).content
c=pd.read_csv(io.StringIO(s.decode('utf-8')))

Notas:

en Python 2.x, el objeto string-buffer era StringIO.StringIO

Como comenté, debe usar un objeto StringIO y decodificar, es decir c=pd.read_csv(io.StringIO(s.decode("utf-8"))) si usa solicitudes, debe decodificar a medida que el contenido devuelve bytes si usó .text, solo necesitaría pasar s como está s = requests.get(url).text c = pd.read_csv(StringIO(s)).

Un método más sencillo es pasar la URL correcta del crudo datos directamente a read_csv, usted no tiene que pasar un archivo como un objeto, puede pasar una URL para que no necesite solicitudes en absoluto:

c = pd.read_csv("https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv")

print(c)

Producción:

                              Country         Region
0                             Algeria         AFRICA
1                              Angola         AFRICA
2                               Benin         AFRICA
3                            Botswana         AFRICA
4                             Burkina         AFRICA
5                             Burundi         AFRICA
6                            Cameroon         AFRICA
..................................

De los documentos:

filepath_or_buffer :

cadena o identificador de archivo / StringIO La cadena podría ser una URL. Los esquemas de URL válidos incluyen http, ftp, s3 y file. Para las URL de archivos, se espera un host. Por ejemplo, un archivo local podría ser file: //localhost/path/to/table.csv

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *