Проблемы с памятью при построчном добавлении 2 CSV-файлов - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть больший CSV-файл (около 550 МБ) и меньший CSV-файл (около 5 МБ), и я хочу объединить все строки в один CSV-файл. Они оба имеют одинаковый заголовок (одинаковый порядок, значения, количество столбцов), и, очевидно, в большем файле больше строк. Я использую 32-битный Python (не могу его изменить) и у меня возникают проблемы с добавлением CSV. Кажется, что верхний ответ и следующий ответ после верхнего ответа работают здесь: Как мне объединить большие CSV-файлы в python? . Однако это занимает безбожное время, и я ищу способы ускорить процесс. Кроме того, когда я прекращаю запускать код во втором ответе для связанного вопроса (так как он занимает много времени), первая строка в результирующем csv всегда пуста. Я думаю, что когда вы вызываете pd.to_csv (..., mode = 'a', ...), он добавляется ниже первой строки CSV. Как вы гарантируете заполнение первого ряда?

1 Ответ

0 голосов
/ 07 апреля 2020

Это намного проще в Linux командной строке, и не нужно загружать файл в память

Используйте команду tail, +2 - это количество пропускаемых строк. Часто для меня, из-за того, как файлы отформатированы, мне нужно +2 вместо +1:

tail -n +2 small.csv >> giant.csv

Это должно сработать.

Если вам нужно сделать это в python, то может сработать что-то вроде режима добавления, но его нужно будет загрузить в память.

...