当索引值不存在时在多索引数据框中传播值

Propagate values in a multi index dataframe when index value does not exist

我有一个由 groupby() 产生的多索引数据帧,如下所示:

df_grouped = df.groupby(['date', 'name']).agg({'ABC': 'sum'})
df_grouped
                   ABC
date        name 
01-03-2018  Adam   1
            John   2
01-04-2018  Adam   4
            Sam    1
01-05-2018  Adam   5
            John   3
            Sam    2
01-06-2018  Jake   1

只有当 name 在新的 date 中不存在时,我才想在 date 中向前传播 ABC 值。如果它存在,那么它应该保持原样:

                   ABC
date        name 
01-03-2018  Adam   1
            John   2
01-04-2018  Adam   4
            John   2
            Sam    1
01-05-2018  Adam   5
            John   3
            Sam    2
01-06-2018  Jake   1
            Adam   5
            John   3
            Sam    2

我不确定如何在不遍历每个 date 的情况下有效地执行此操作。请问有更好的方法吗?

IIUC

df = df_grouped.unstack().ffill().stack().astype(int)
                 ABC
date       name     
01-03-2018 Adam    1
           John    2
01-04-2018 Adam    4
           John    2
           Sam     1
01-05-2018 Adam    5
           John    3
           Sam     2
01-06-2018 Adam    5
           Jake    1
           John    3
           Sam     2