Как я могу добавить фреймы данных панд в файлы CSV COLUMN-WISE? - PullRequest
0 голосов
/ 20 сентября 2018

Я предварительно обрабатываю большой набор данных с 840 000 выборок и более 400 объектов.Мне нужно хранить кадры данных в отдельных файлах CSV, чтобы уменьшить память.ПОЭТОМУ я должен избегать pd.concat, так как он загружает память

У меня есть разные кадры данных, в зависимости от природы переменных.Как я могу добавить файлы CSV по столбцам?Кажется, что:

df_1.to_csv('file.csv', index=False)
df_2.to_csv('file.csv', mode='a', index=False)
df_3.to_csv('file.csv', mode='a', index=False)

Создает файл file.csv, а затем добавляет df_2 и df_3 чуть ниже друг друга.Как я могу добавить его по столбцам, а не по строкам?

ПРИМЕР:

DF1

row1:    variable_a variable_b
row2:       0            1
row3:       1            1
row839999:  0            1

DF2:

row1:    variable_c variable_d
row2:       0            1
row3:       1            1
row839999:  0            1

FINAL DF

row1:    variable_a variable_b variable_c variable_d
row2:       0            1         0        1
row3:       1            1         1        1 
row839999:  0            1         0        1

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Моим решением было преобразовать типы переменных.Сначала переменные были int32, и я преобразовал их в int8.Тогда это не заняло так много времени.

0 голосов
/ 20 сентября 2018

Если ваши данные находятся в базе данных, вы должны использовать SQL для объединения и использовать pandas read_sql для чтения того, что вам нужно.В качестве альтернативы вы можете взглянуть на Dask (https://dask.pydata.org/en/latest/139). У меня нет опыта работы с ним, я просто указываю вам на полезные ресурсы.

Dask DataFrame - это большой параллельный фрейм данных, состоящий из множестваменьшие кадры данных Pandas, разделенные по индексу. Это может решить вашу проблему с MemoryError. Попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...