По порядку Middle Производительность и память обновлено

Порядок оптимизации кода на pandas

Вопрос

Расставьте шаги ускорения медленного кода в разумном порядке.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Измерить и найти узкое место (%%time, %prun)
  2. 2
    Перенести фильтры и агрегаты в базу или ближе к началу
  3. 3
    Если не хватает: DuckDB, Polars или Spark
  4. 4
    Ужать типы и читать только нужные колонки
  5. 5
    Убрать построчные циклы и apply(axis=1)
Показать ответ и разбор

Коротко

Без измерения легко оптимизировать не то. Убрать циклы обычно даёт самый большой выигрыш при минимуме усилий.

Правильный порядок

  1. 1
    Измерить и найти узкое место (%%time, %prun)
  2. 2
    Убрать построчные циклы и apply(axis=1)
  3. 3
    Ужать типы и читать только нужные колонки
  4. 4
    Перенести фильтры и агрегаты в базу или ближе к началу
  5. 5
    Если не хватает: DuckDB, Polars или Spark

Разбор

Без измерения легко оптимизировать не то. Убрать циклы обычно даёт самый большой выигрыш при минимуме усилий. Затем память и объём данных. Смена инструмента самая дорогая, её оставляют напоследок.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.