Выбор ответа Senior pivot, melt и сводные обновлено

melt и пустые ячейки

Вопрос

Широкая таблица wide (колонки date, Москва, Казань) содержит NaN там, где продаж не было. Нужна длинная таблица только с реальными продажами. Что сделать?

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

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: wide.melt(idvars="date").dropna(subset=["value"]). melt сохраняет все ячейки, включая NaN, поэтому после него нужен dropna по колонке значений. pivot делает обратное преобразование. wide.dropna() до melt выкинет целые даты, где хотя бы один город пуст, и потеряет реальные продажи других…

Варианты ответа

  1. wide.melt(id_vars="date"): он сам выбросит NaN
  2. wide.melt(id_vars="date").dropna(subset=["value"])правильный ответ
  3. wide.pivot(index="date", columns="city").dropna()
  4. wide.dropna().melt(id_vars="date", var_name="city")

Разбор

melt сохраняет все ячейки, включая NaN, поэтому после него нужен dropna по колонке значений. pivot делает обратное преобразование. wide.dropna() до melt выкинет целые даты, где хотя бы один город пуст, и потеряет реальные продажи других городов.

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

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