每个 ID 的“子 ID”值之和

问题描述 投票:0回答:1

我有这种数据框:

   ID  ID2  Feature1  Feature2  Feature3  Feature4  Feature5
0   2    2         8         5         7         3         7
1   2    2         4         8         8         3         6
2   1    1         8         6         2         5         1
3   2    2         1         3         7         4         9
4   2    1         3         7         5         9         7

我想计算每个 ID 和 ID2 的行总和,因此输出数据帧将具有列 ID 和 ID2 值的总和,因此预期输出应该是

   ID   Sum_ID2_values1  Sum_ID2_values2  
0   1                22                0         
1   2                31               83         

我尝试了不同的数据透视表和grouppy方法,但没有得到预期的输出。

dataframe group-by pivot
1个回答
0
投票

尝试:

out = (
    df.groupby("ID")
    .apply(lambda x: x.groupby("ID2").sum().iloc[:, 1:].sum(axis=1))
    .unstack("ID2")
    .fillna(0)
)
print(out)

打印:

ID2     1     2
ID             
1    22.0   0.0
2    31.0  83.0
© www.soinside.com 2019 - 2024. All rights reserved.