Выбор ответа Junior Series, DataFrame и индекс спрашивают часто обновлено

Сложение Series с разными индексами

Вопрос

Что получится в a + b?

import pandas as pd
a = pd.Series([1, 2, 3], index=['x', 'y', 'z'])
b = pd.Series([10, 20], index=['y', 'w'])
print(a + b)

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

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

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

Коротко

Правильный ответ: NaN для меток w, x, z и 12.0 для y. Арифметика pandas выравнивает данные по меткам индекса, а не по позициям.

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

  1. NaN для меток w, x, z и 12.0 для yправильный ответ
  2. [11, 22, 3]: складываются по позициям, лишнее остаётся
  3. Ошибка: индексы не совпадают
  4. [11, 22]: длина по меньшей Series

Разбор

Арифметика pandas выравнивает данные по меткам индекса, а не по позициям. Результат получает объединение меток w, x, y, z, и только у y есть пара: 2 + 10 = 12. Остальные метки без пары дают NaN, поэтому тип становится float. Ошибки нет, обрезки по длине тоже. Чтобы недостающее считалось нулём: a.add(b, fill_value=0).

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

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