Я думав, що піднесу ще трохи даних до дискусії.
Я провів низку тестів з цього питання.
Використовуючи resource
пакет python, я отримав використання пам'яті свого процесу.
І записуючи csv у StringIO
буфер, я міг легко виміряти його розмір у байтах.
Я провів два експерименти, кожен з яких створив 20 кадрів даних із збільшенням розмірів між 10 000 рядками та 1 000 000 рядків. Обидва мають 10 стовпців.
У першому експерименті я використовував лише поплавці у своєму наборі даних.
Так збільшилася пам'ять порівняно з файлом csv як функція кількості рядків. (Розмір у мегабайти)
У другому експерименті у мене був такий самий підхід, але дані в наборі даних складалися лише з коротких рядків.
Здається, що співвідношення розміру csv та розміру фрейму даних може відрізнятися досить сильно, але розмір у пам'яті завжди буде більшим на 2-3 рази (для розмірів кадру в цьому експерименті)
Я хотів би доповнити цю відповідь ще кількома експериментами, будь ласка, коментуйте, якщо ви хочете, щоб я спробував щось особливе.
top
а потімShift + M
відсортуйте моє використання пам'яті.