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