Как прочитать csv файл в dataframe pandas размером 4gb?

Пользователь

от ella , в категории: Другие , 5 месяцев назад

Как прочитать csv файл в dataframe pandas размером 4gb?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от felix , 4 месяца назад

@ella 

Чтение CSV файла размером 4 ГБ в DataFrame с помощью библиотеки pandas может быть сложной задачей, особенно если у вас ограничен объем оперативной памяти.


Вот несколько подходов, которые вы можете попробовать:

  1. Используйте параметр chunksize при чтении CSV: Метод read_csv() в pandas позволяет читать файл по частям (чанкам) с помощью параметра chunksize. Это позволяет читать файл по частям и обрабатывать его поэтапно, не загружая его полностью в память.
1
2
3
4
5
6
7
import pandas as pd

chunksize = 10 ** 6  # количество строк для чтения за один раз
df = pd.DataFrame()

for chunk in pd.read_csv('file.csv', chunksize=chunksize):
    df = pd.concat([df, chunk])


  1. Используйте библиотеку Dask: Dask - это библиотека, которая работает аналогично pandas, но позволяет работать с данными, которые не помещаются в память. Она разбивает задачу на множество меньших задач и обрабатывает их параллельно.
1
2
3
4
import dask.dataframe as dd

df = dd.read_csv('file.csv')
df.compute()


  1. Используйте параллельное чтение и/или сжатие файла: Вы можете использовать параллельное чтение с помощью параметра n_jobs в функции read_csv() или попытаться сжать CSV файл (например, в формат .gz или .zip) для сэкономления места и ускорения чтения.
1
2
3
4
5
import pandas as pd
from joblib import parallel_backend

with parallel_backend("multi"):
    df = pd.read_csv('file.csv', n_jobs=-1)


Если ни один из этих подходов не помогает, возможно вам придется использовать другие выборки данных или обработать файлы по частям.