Преобразование всех объектов из байтов в объединенный фрейм данных

#python #pandas #bytesio

#python #pandas #bytesio

Вопрос:

У меня есть байты (которые я назвал content ниже), содержащие объекты, и я пытаюсь преобразовать каждый объект в фрейм данных и объединить эти фреймы данных в один фрейм данных с помощью python.

 print(content)
output: 
<Object url='https://...254383879.csv' etag='"fhksjdhfksjhfkwhefuhewuwiefuh"'>
<Object url='https://....603587330.csv' etag='"d317035287238579384759387452"'>
 

Я попробовал следующий код, но он продолжает работать без какого-либо вывода:

 from io import BytesIO
import pandas as pd
df = []

for obj in content:
    obj = pd.read_csv(BytesIO(content))
   

df = pd.concat(df)
 

Я также пытался использовать этот код:

 from io import BytesIO
import pandas as pd

df = pd.read_csv(BytesIO(content))
print(df[0:5])
 

Но этот второй код преобразует только последний объект содержимого в фрейм данных, а не все из них. Кто-нибудь знает, как приступить к преобразованию и объединению всех объектов в один фрейм данных? Спасибо!

Комментарии:

1. похоже, вы создали настоящую логическую бомбу! for obj in content: obj = pd.read_csv(BytesIO(content)) не имеет смысла. перебираем строки в content и присваиваем обратно obj . Плюс df = pd.concat(df) , где df был инициализирован в пустой массив. Является ли это общедоступным URL-адресом, который вы requests.get() предоставляете URL и показываете, как обрабатывать

2. Привет, Роб, спасибо за ответ! к сожалению, URL-адрес не является общедоступным: ( было бы чрезвычайно полезно, если бы вы могли опубликовать какой-то черновик кода или предложить какую-то логику, которую я мог бы использовать для решения этой проблемы. Большое спасибо за вашу помощь!