TL;DR: Я обрабатываю большой CSV-файл (4 миллиона строк, 510 столбцов), но мне нужно всего несколько тысяч строк со всеми столбцами в конце. Весь процесс занимает более 70 минут и требует много памяти. Ищу способы оптимизации рабочего процесса с помощью Pandas.
Я столкнулся с некоторыми проблемами с производительностью и памятью при обработке большого набора данных CSV. Весь процесс, от чтения набора данных до сохранения окончательного CSV-файла, требует очень много времени и памяти. Хотя мне почти удается запустить его на своем локальном компьютере, я изо всех сил пытаюсь заставить его работать на сервере контроля качества. Я надеюсь получить совет о том, как оптимизировать этот рабочий процесс.
У меня есть набор данных с 4 миллионами строк и 510 столбцами. Однако для большинства этапов обработки мне нужно всего около 10 столбцов. В самом конце процесса мне нужно иметь все 510 столбцов, доступных для записи окончательного результата в формате CSV.
Чтение этого набора данных с помощью Pandas занимает около 20 минут. Мне удалось сократить это время до 15 минут, читая данные порциями, но это все равно долго.
После прочтения Я выполняю дедупликацию на основе составного ключа, что уменьшает набор данных с 4 миллионов строк примерно до 1,3 миллиона строк. Один только этот шаг дедупликации занимает еще 20 минут.
После завершения дедупликации я присоединил набор данных (1,3 миллиона строк) к другому набору данных меньшего размера. там около 3000 записей. Поскольку соединение основано на меньшем наборе данных, для окончательного результата мне нужно всего около 2950 строк из большего набора данных.
После объединения Я выполняю базовое форматирование и сохраняю результат в формате CSV. Конечный результат содержит все 700 столбцов (включая столбцы из обоих наборов данных), но только около 3000 строк.
Что мне нужно Помогите с:
Есть ли способ сократить время, необходимое для чтения этого большого набора данных (сейчас около 15–20 минут)?
Поскольку мне нужно всего лишь около В конечном выводе 3000 строк, но во время конвейера обрабатывается 1,3 миллиона строк. Есть ли способ минимизировать использование памяти, загружая только необходимые данные на ранних этапах процесса и извлекая оставшиеся столбцы позже?
Существуют ли в Pandas какие-либо передовые методы или методы для эффективной обработки больших файлов CSV, особенно когда большинство столбцов не нужны до последнего шага?
Есть ли предложения о том, как повысить эффективность использования памяти и производительность будет очень признательна, особенно если они придерживаются Pandas или подобных библиотек (поскольку такие библиотеки, как Dask, недоступны в нашей среде).
[b]TL;DR:[/b] Я обрабатываю большой CSV-файл (4 миллиона строк, 510 столбцов), но мне нужно всего несколько тысяч строк со всеми столбцами в конце. Весь процесс занимает более 70 минут и требует много памяти. Ищу способы оптимизации рабочего процесса с помощью Pandas.
Я столкнулся с некоторыми проблемами с производительностью и памятью при обработке большого набора данных CSV. Весь процесс, от чтения набора данных до сохранения окончательного CSV-файла, требует очень много времени и памяти. Хотя мне почти удается запустить его на своем локальном компьютере, я изо всех сил пытаюсь заставить его работать на сервере контроля качества. Я надеюсь получить совет о том, как оптимизировать этот рабочий процесс. [list] [*]У меня есть набор данных с 4 миллионами строк и 510 столбцами. Однако для большинства этапов обработки мне нужно всего около 10 столбцов. В самом конце процесса мне нужно иметь все 510 столбцов, доступных для записи окончательного результата в формате CSV.
[*]Чтение этого набора данных с помощью Pandas занимает около 20 минут. Мне удалось сократить это время до 15 минут, читая данные порциями, но это все равно долго.
[*]После прочтения Я выполняю дедупликацию на основе составного ключа, что уменьшает набор данных с 4 миллионов строк примерно до 1,3 миллиона строк. Один только этот шаг дедупликации занимает еще 20 минут.
[*]После завершения дедупликации я присоединил набор данных (1,3 миллиона строк) к другому набору данных меньшего размера. там около 3000 записей. Поскольку соединение основано на меньшем наборе данных, для окончательного результата мне нужно всего около 2950 строк из большего набора данных.
[*]После объединения Я выполняю базовое форматирование и сохраняю результат в формате CSV. Конечный результат содержит все 700 столбцов (включая столбцы из обоих наборов данных), но только около 3000 строк.
[/list] Что мне нужно Помогите с: [list] [*]Есть ли способ сократить время, необходимое для чтения этого большого набора данных (сейчас около 15–20 минут)?[*]Поскольку мне нужно всего лишь около В конечном выводе 3000 строк, но во время конвейера обрабатывается 1,3 миллиона строк. Есть ли способ минимизировать использование памяти, загружая только необходимые данные на ранних этапах процесса и извлекая оставшиеся столбцы позже? [*]Существуют ли в Pandas какие-либо передовые методы или методы для эффективной обработки больших файлов CSV, особенно когда большинство столбцов не нужны до последнего шага? [*]Есть ли предложения о том, как повысить эффективность использования памяти и производительность будет очень признательна, особенно если они придерживаются Pandas или подобных библиотек (поскольку такие библиотеки, как Dask, недоступны в нашей среде). [/list]
TL;DR: Я обрабатываю большой CSV-файл (4 миллиона строк, 510 столбцов), но мне нужно всего несколько тысяч строк со всеми столбцами в конце. Весь процесс занимает более 70 минут и требует много памяти. Ищу способы оптимизации рабочего процесса с...
TL;DR: Я обрабатываю большой CSV-файл (4 миллиона строк, 510 столбцов), но мне нужно всего несколько тысяч строк со всеми столбцами в конце. Весь процесс занимает более 70 минут и требует много памяти. Ищу способы оптимизации рабочего процесса с...
Я разрабатываю приложение Node.js, которое генерирует отчеты CSV на основе данных, полученных с помощью Sequelize из базы данных PostgreSQL. Хотя решение хорошо работает для небольших наборов данных, загрузка ЦП возрастает до 100 %, а потребление...
Я работаю над сценарием Python, который обрабатывает очень большой файл CSV (около 5 ГБ), но заметил значительные проблемы с производительностью. Я хочу оптимизировать свой код для большей эффективности. Вот упрощенная версия того, что у меня есть:...
Я работаю над сценарием Python, который обрабатывает очень большой файл CSV (около 5 ГБ), но заметил значительные проблемы с производительностью. Я хочу оптимизировать свой код для большей эффективности. Вот упрощенная версия того, что у меня есть:...