Meus dados de entrada:
df=pd.DataFrame({'ID':['A','B','C','D'],
'Group':['group1','group1','group2','group2'],
'Flag_1':[1,0,0,1],
'Flag_2':[1,1,0,1],
'Value':[30,40,60,70]
})
Estou tentando somar "Valor" por grupo quando o sinalizador é igual a 1. Minha saída esperada é:
df_value_group=pd.DataFrame({
'Flag_1 Sum':[1,1],
'Flag_2 Sum':[2,1],
'Value_1 Sum':[30,70],
'Value_2 Sum':[70,70]},
index=['group1','group2'])
Eu tentei isso, mas ele me gera um erro AssertionError principalmente devido às duas últimas funções lambda.
df.groupby('Group').agg(
**{ 'Flag_1 Sum': ('Flag_1','sum'),
'Flag_2 Sum': ('Flag_2','sum'),
'Value_1 Sum': ('Flag_1', lambda col: df.loc[col.eq(1), 'Value'].sum()),
'Value_2 Sum': ('Flag_2', lambda col: df.loc[col.eq(1), 'Value'].sum())
})