Проблема с экспортом Pandas DataFrame с объектом, содержащим документы в байтах

Я пытаюсь экспортировать DataFrame, который содержит документы как байтовые объекты, однако я не могу найти подходящий формат файла, который не включает относительно небольшой (использование памяти: 254,3+ КБ) DataFrame, расширяющийся во что-то в пределах 100 МБ - даже 1 ГБ +.

До сих пор я пытался экспортировать DataFrame как CSV и HDF5.

Столбец, вызывающий это огромное расширение, содержит файлы .pdf, .doc, .txt или .msg в байтовом формате: b'%PDF-1.7\r%\xe2\xe3\xcf\xd3\r\n256..., который изначально хранился на SQL-сервере как varbinary(max) и загружался с настройками pandas по умолчанию.

Я просто попытался использовать pandas для экспорта DataFrame, используя: df.to_csv('.csv') и

data_stored = pd.HDFStore('documents.h5')
data_stored['document'] = df

Я хотел, чтобы выходные данные были компактными, так как я просто хотел бы иметь возможность снова загрузить данные в другое время. Проблема, однако, в том, что в результате экспорта получается огромный файл CSV или .h5. Я предполагаю, что есть какой-то формат файла, который сохраняет формат и размер pd.DataFrame?


person Armageddon    schedule 15.02.2019    source источник


Ответы (1)


Я закончил экспорт с использованием df.to_pickle. Также я обнаружил, что размер фрейма данных действительно был намного больше, чем я первоначально думал, поскольку pandas метод .info не включает в себя огромный объем служебной памяти. Вместо этого, чтобы просмотреть всю память, я использовал df.memory_usage(deep=True).sum(), и действительно фрейм данных занял около 1.1 GB.

person Armageddon    schedule 21.02.2019