TGViewer
PyMagic PyMagic @pymagic · 5.56K subscribers
Post #395 3.65K
Оптимизируем размер памяти DataFrame в 3 раза 🚀

🚀 Поговорим про эффективное использование памяти в библиотеке Pandas. Опережая вопросы, скажу, что в большинстве компаний, где используется Big Data, код обычно написан на PySpark, но это уже совсем другая история 😅

Сегодня мы рассмотрим методы, позволяющие сократить расход памяти при использовании Pandas. Это помогает не только оптимизировать память, но и также ускорить работу с таблицами в Pandas.

Давайте представим, что вам необходимо загрузить огромный датасет для его исследования и построения модели машинного обучения в дальнейшем. Вы столкнулись с ошибкой Memory Error, ведь датасет был действительно внушительных размеров.

Раскидать датасет по разным файлам (и обрабатывать фрагменты) или сжать данные вы не можете. Что делать?

📌 Первое, о чем вы должны вспомнить, что при загрузке данных в pandas DataFrame значения не всегда получают наиболее подходящие типы данных. Например, вместо int8 назначается тип int64 из-за чего объем используемой памяти существенно возрастает.

🔨 int64 – это целые числа в диапазоне от -9223372036854775808 по 9223372036854775807, (числа размером 8 байт). И если у вас таблица размером миллион объектов, то каждый столбец типа int64 будет занимать 8 миллионов байт!!

✅ Если наши значения в столбце имеют небольшой диапазон, например min=-10000, а max=20000, то лучше использовать тип int16. Целые числа в диапазоне от -32768 по 32767 (2 байта).
И если вы переведете подобные столбцы из int64 в int16, то заметите значительное сокращение потребления памяти.

✅ Думаю, мы достаточно поговорили про числовые типы данных. Давайте подумаем, как можно сократить память в столбцах типа object. Категории в этих столбцах конечны (диапазон возможных значений фиксирован), более того, в столбцах много повторений, поэтому можно (и нужно) привести тип object к типу category. И вы снова можете заметить сокращение памяти!

Чтобы посмотреть, как это все сработало на большой таблице в миллион строк, читайте полную статью с примерами кода 😎

https://vk.com/@pymagic-optimiziruem-razmer-pamyati-dataframe-v-3-raza
VK Оптимизируем размер памяти DataFrame в 3 раза 🚀 Привет, друзья! Сегодня мы с вами обсудим очень важную тему, над которой чаще всего начинающие специалисты не задумываются. Поговорим про..
  • 👍 36
  • 🔥 2
More from @pymagic
  1. Oct 6, 2026Всем привет! 👋 Давно здесь не было новостей, поэтому начну с главной: с недавних пор я пе…
  2. May 19, 2026Уже на этой неделе с 23 мая стартует Data Fest 2026! А 24 мая пройдёт секция ML in Adverti…
  3. May 6, 2026Как кластеризовать миллионы объектов с высокой размерностью и сложной структурой данных? К…
  4. Apr 24, 2026Привет! Вечер четверга — самое время вспомнить о том, что хотелось подать заявку на спикер…
  5. Apr 9, 2026Разбор докладов с конференции И вот подошел к концу второй день конференции Data Fusion, н…
  6. Apr 8, 2026Первый день на Data Fusion 2026 Сегодня, 8 апреля, я побывала на первом дне конференции Da…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →