Выбор ответа Senior merge, join и concat обновлено

Размер cross join

Вопрос

Нужна сетка «каждый магазин × каждый день», чтобы потом дозаполнить нулями дни без продаж. Магазинов 300, дней 365. Каким будет результат stores.merge(days, how="cross") и зачем он?

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

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

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

Коротко

Правильный ответ: 109 500 строк, все пары магазин-день, к ним потом left merge. Cross join даёт декартово произведение: 300 × 365 = 109 500 строк.

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

  1. 665 строк (300 + 365): это объединение двух справочников подряд
  2. 109 500 строк, все пары магазин-день, к ним потом left mergeправильный ответ
  3. 365 строк, а 300 магазинов станут отдельными колонками
  4. Ошибка: для cross нужно указать общий параметр on

Разбор

Cross join даёт декартово произведение: 300 × 365 = 109 500 строк. Это классический способ получить полный каркас и затем присоединить продажи через left merge и fillna(0), чтобы дни без продаж не пропали из средних. Объединение справочников это concat. Для cross параметр on не нужен и запрещён.

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

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