Проблема, с которой вы столкнулись, заключается в том, что вывод, который вы получаете в переменную 's', - это не CSV, а HTML-файл. Для того, чтобы получить сырой CSV, вы должны изменить URL:
' Https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv '
Ваша вторая проблема заключается в том, что read_csv ожидает имя файла, мы можем решить это, используя StringIO из модуля io. Третья проблема заключается в том, что request.get (url) .content доставляет поток байтов, мы можем решить эту проблему, используя вместо этого request.get (url) .text.
Конечный результат - это код:
from io import StringIO
import pandas as pd
import requests
url='https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv'
s=requests.get(url).text
c=pd.read_csv(StringIO(s))
вывод:
>>> c.head()
Country Region
0 Algeria AFRICA
1 Angola AFRICA
2 Benin AFRICA
3 Botswana AFRICA
4 Burkina AFRICA
c=pd.read_csv(io.StringIO(s.decode("utf-8")))
но вы получаете html обратно, а не файл CSV, поэтому он не будет работать