【问题标题】:Propagate values in a multi index dataframe when index value does not exist当索引值不存在时,在多索引数据帧中传播值
【发布时间】:2020-07-30 04:00:36
【问题描述】:

我有一个来自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 的情况下有效地做到这一点。请问有没有更好的办法?

【问题讨论】:

    标签: python pandas multi-index reindex


    【解决方案1】:

    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
    

    【讨论】:

    • 感谢您的解决方案。我试过了,效果很好。
    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 2021-12-13
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-11
    相关资源
    最近更新 更多