当索引值不存在时在多索引数据框中传播值
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
我有一个由 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