Распространять значения в мультииндексном фрейме данных, когда значение индекса не существует - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть многоиндексный фрейм данных, полученный из 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

Я хочу распространять значения AB C вперед в date, только если name делает не существует в новом date. Если он существует, то его следует оставить как есть:

                   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. Есть ли лучший способ, пожалуйста?

1 Ответ

2 голосов
/ 16 апреля 2020

IIU C

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
...