Python 熊猫:分组依据和条件求和并添加回数据帧
我有一个如下所示的数据框:Python 熊猫:分组依据和条件求和并添加回数据帧,python,pandas,Python,Pandas,我有一个如下所示的数据框: ID Num Letter Count 1 17 D 1 1 12 D 2 1 13 D 3 2 17 D 4 2 12 A 5 2 16 D 1 3 16 D 1 目标是当'Num'为(17或12)且'Letter'为'D'时,将每个'ID'的'Count'值相加,并将计算结果加回到'Total'中的原始数据帧中 以下是
ID Num Letter Count
1 17 D 1
1 12 D 2
1 13 D 3
2 17 D 4
2 12 A 5
2 16 D 1
3 16 D 1
目标是当'Num'为(17或12)且'Letter'为'D'时,将每个'ID'的'Count'值相加,并将计算结果加回到'Total'中的原始数据帧中
以下是预期的数据帧:
ID Num Letter Count Total
1 17 D 1 3
1 12 D 2 3
1 13 D 3 3
2 17 D 4 4
2 12 A 5 4
2 16 D 1 4
3 16 D 1 0
提前谢谢 思想是将中的不匹配值替换为
0
,然后与sum
一起使用:
mask = df['Num'].isin([17,12]) & df['Letter'].eq('D')
df['Total'] = df['Count'].where(mask, 0).groupby(df['ID']).transform('sum')
print (df)
ID Num Letter Count Total
0 1 17 D 1 3
1 1 12 D 2 3
2 1 13 D 3 3
3 2 17 D 4 4
4 2 12 A 5 4
5 2 16 D 1 4
6 3 16 D 1 0