Код: Выделить всё
iter_csv = pd.read_csv(file.csv,chunksize=n/2)
df = pd.concat([chunk for chunk in iter_csv])
< /code>
Затем я должен применить функцию к DataFrame для создания нового столбца на основе некоторых значений: < /p>
df['newcl'] = df.apply(function)
< /code>
Все идет нормально.
Но теперь мне интересно, в чем разница между вышеуказанной процедурой и следующей: < /p>
iter_csv = pd.read_csv(file.csv,chunksize=n/2)
for chunk in iter_csv:
chunk['newcl'] = chunk.apply(function)
df = pd.concat([chunk])
< /code>
С точки зрения потребления оперативной памяти, я подумал, что второй метод должен быть лучше, поскольку он применяет функцию только к кусочке, а не к всей области данных. Но возникают следующие проблемы: < /p>
Размещение df = pd.concat ([chunk]) < /code> внутри цикла возвращает мне DataFrame с размером n/2 (размер чанка), а не полный; , после того, как цикл возвращает ту же длину DataFrame N /2. Функция read_csv Спасибо за поддержку. < /p>
Подробнее здесь: https://stackoverflow.com/questions/291 ... -the-loops