我有一个这样的数据框:
Ref_No Definition Total_to_Add
0 ref1 B 20
1 ref2 A 30
2 ref1 B 40
3 ref2 A 50
4 ref1 B 60
5 ref2 B 50
6 ref1 B 60
7 ref2 B 50
8 ref1 B 60
对于每个参考,如果它们是“ B”且参考号相同,我想对Total_to_Add求和(我将在A的另一列中)。有100的参考数字。
我可以总结一下满足单个条件的那些:
df['ANSWER'] = df[df['Definition']=='A']['Total_to_Add'].sum()
或者我可以按如下引用进行分组:
df['ANSWER']=(df.groupby('Ref_No')['Total_to_Add'].transform('sum'))
但我似乎无法结合这些功能,即创建一个新列,如果定义为“ B”,则总计,由Ref_No总计。
我的目标是输出如下所示:
Ref_No Definition Total_to_Add Total_'B'
0 ref1 B 20 240
1 ref2 A 30 100
2 ref1 B 40 240
3 ref2 A 50 100
4 ref1 B 60 240
5 ref2 B 50 100
6 ref1 B 60 240
7 ref2 B 50 100
8 ref1 B 60 240
任何智慧表示赞赏!谢谢
尝试:
df['Total_B'] = (df['Definition'].eq('B').mul(df['Total_to_Add'])
.groupby(df['Ref_No']).transform('sum'))
[出]
Ref_No Definition Total_to_Add Total_B
0 ref1 B 20 240
1 ref2 A 30 100
2 ref1 B 40 240
3 ref2 A 50 100
4 ref1 B 60 240
5 ref2 B 50 100
6 ref1 B 60 240
7 ref2 B 50 100
8 ref1 B 60 240
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句