["python","csv","pandas","request"]
Pandas read_csv from url

I'm trying to read a csv-file from given URL, using Python 3.x: 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) I have the following error "Expected file path name or file-like object, got <class 'bytes'> type" How can I fix this? I'm using Python 3.4
Update: From pandas 0.19.2 you can now just pass read_csv() the url directly, although that will fail if it requires authentication. For older pandas versions, or if you need authentication, or for any other HTTP-fault-tolerant reason: Use pandas.read_csv with a file-like object as the first argument. If you want to read the csv from a string, you can use io.StringIO. For the URL https://github.com/cs109/2014_data/blob/master/countries.csv, you get html response, not raw csv; you should use the url given by the Raw link in the github page for getting raw csv response , which is https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv Example: 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'))) Note: in Python 2.x, the string-buffer object was StringIO.StringIO