Як я помітив , що вам потрібно використовувати об'єкт StringIO і розшифровує тобто c=pd.read_csv(io.StringIO(s.decode("utf-8")))
при використанні запитів, вам необхідно декодувати , як .content повертає байт , якщо використовується .text вам просто потрібно буде проходити сек як s = requests.get(url).text
з = pd.read_csv(StringIO(s))
.
Більш простий підхід - передавати правильний URL-адресу необроблених даних безпосередньо до read_csv
вас, вам не потрібно передавати файл, як об'єкт, ви можете передавати URL-адресу, щоб вам взагалі не потрібні запити:
c = pd.read_csv("https://raw.githubusercontent.com/cs109/2014_data/master/countries.csv")
print(c)
Вихід:
Country Region
0 Algeria AFRICA
1 Angola AFRICA
2 Benin AFRICA
3 Botswana AFRICA
4 Burkina AFRICA
5 Burundi AFRICA
6 Cameroon AFRICA
..................................
З документів :
filepath_or_buffer :
рядок або ручка файлу / StringIO Рядок може бути URL-адресою. Дійсні схеми URL-адрес включають http, ftp, s3 та файл. Для URL-адрес файлів очікується хост. Наприклад, локальним файлом може бути файл: //localhost/path/to/table.csv
c=pd.read_csv(io.StringIO(s.decode("utf-8")))
але ви отримуєте html назад, а не файл CSV, тому він не працюватиме