Что выведет код Middle groupby и агрегаты обновлено

transform и NaN в ключе

Вопрос

Что выведет код? По строке на каждый print.

import pandas as pd

df = pd.DataFrame({
    'k': ['x', 'y', None, 'x'],
    'v': [1, 2, 3, 4],
})
print(df.groupby('k')['v'].sum().to_dict())
print(df.groupby('k')['v'].transform('sum').tolist())
print(df.groupby('k', dropna=False)['v'].sum().tolist())

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

Напишите, что выведет код: каждый вывод с новой строки.

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

Коротко

Код выведет: {'x': 5, 'y': 2}, [5.0, 2.0, nan, 5.0], [5, 2, 3]. Строка с ключом None выпадает из групп.

Что выведет

{'x': 5, 'y': 2}
[5.0, 2.0, nan, 5.0]
[5, 2, 3]

Разбор

Строка с ключом None выпадает из групп. В sum её нет. В transform результат выровнен по исходным строкам, и для выпавшей строки получается NaN, из-за этого колонка становится float. С dropna=False появляется группа NaN, она идёт последней.

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

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

Термины по теме