2016-08-29 37 views
5

Używając żądań, tworzę obiekt w formacie .csv. Jak mogę napisać ten obiekt do DataFrame z pandami?Konwertuj dane tekstowe z obiektu żądania na ramkę danych na pandy

Aby uzyskać wnioski sprzeciw w formacie tekstowym:

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 

próbowałem (nie działa):

pd.read_csv(r.text) 
pd.DataFrame.from_csv(r.text) 
+1

trudno odpowiedzieć nie widząc danych. – shivsn

+0

Może być konieczne zapisanie danych odpowiedzi w pliku i sprawdzenie zawartości pliku. Następnie odczytaj plik do pliku CSV, sprawdź, czy to podejście działa. Jeśli nie, to coś jest nie tak w danych – Shijo

+1

http://stackoverflow.com/questions/32400867/pandas-read-csv-from-url/32401251#32401251, nie ma potrzeby wysyłania żądań, chyba że publikujesz dane, które pozwalają ci aby uzyskać dostęp do treści –

Odpowiedz

8

Spróbuj

import requests 
import pandas as pd 
import io 

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

myślę, że można użyć read_csv z url:

pd.read_csv(url) 

filepath_or_buffer: str, pathlib.Path, py._path.local.LocalPath lub dowolny obiekt za pomocą metody read() (takiej jak uchwyt pliku lub StringIO)

Łańcuch może być adresem URL. Prawidłowe schematy URL to http, ftp, s3 i file. W przypadku adresów URL pliku oczekuje się hosta. Na przykład, plik lokalny może być plik: //localhost/path/to/table.csv

Jeśli nie robi praca, spróbuj:

import pandas as pd 
import io 
import requests 

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

jeśli URL ma uwierzytelnianie następnie możesz bezpośrednio użyj read_csv (url)

jeśli masz uwierzytelnienie możesz użyć polecenia, aby go usunąć i wydrukować plik CSV i upewnij się, że wynik jest CSV i użyj panda.

można korzystać bezpośrednio importowania importu CSV