web-dev-qa-db-fra.com

Convertir les données texte de l'objet de requêtes en dataframe avec des pandas

En utilisant des requêtes, je crée un objet au format .csv. Comment puis-je écrire cet objet sur un DataFrame avec des pandas?

Pour obtenir l'objet de requête au format texte:

import requests
import pandas as pd
url = r'http://test.url' 
r = requests.get(url)
r.text  #this will return the data as text in csv format

J'ai essayé (ça ne marche pas):

pd.read_csv(r.text)
pd.DataFrame.from_csv(r.text)
7
sparrow

Essaye ça

import requests
import pandas as pd
import io

urlData = requests.get(url).content
rawData = pd.read_csv(io.StringIO(urlData.decode('utf-8')))
13
Merlin

Je pense que vous pouvez utiliser read_csv avec url:

pd.read_csv(url)

filepath_or_buffer: str, pathlib.Path, py._path.local.LocalPath ou tout objet avec une méthode read () (comme un descripteur de fichier ou StringIO)

La chaîne pourrait être une URL. Les modèles d'URL valides incluent http, ftp, s3 et file. Pour les URL de fichier, un hôte est attendu. Par exemple, un fichier local pourrait être file: //localhost/path/to/table.csv

Si cela ne fonctionne pas, essayez:

import pandas as pd
import io
import requests

url = r'http://...' 
r = requests.get(url)  
df = pd.read_csv(io.StringIO(r) 
5
jezrael

si l'url n'a pas d'authentification, vous pouvez directement utiliser read_csv (url)

si vous avez une authentification, vous pouvez utiliser request pour l'obtenir décaler et imprimer le CSV et vous assurer que le résultat est CSV et utiliser Panda.

Vous pouvez directement utiliser l’importation Import csv

1
rkoots