我有这样一个数据帧:
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\和\u相加(A将有另一列)。有100个参考号。你知道吗
我可以把满足一个条件的加起来,比如:
df['ANSWER'] = df[df['Definition']=='A']['Total_to_Add'].sum()
或者我可以用这样的参照物来分组:
df['ANSWER']=(df.groupby('Ref_No')['Total_to_Add'].transform('sum'))
但我似乎无法组合这些函数,即创建一个新的列,如果定义为“B”和“total by Ref\u 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
感谢你的智慧!谢谢
尝试:
[输出]
如果“Definition”==“B”,这将在“Total\u B”列中生成“Total\u to\u Add”的和。
df['Total_B']=df[df['Definition']=='B'].groupby(by=['Ref_No','Definition'])['Total_to_Add'].transform('sum')
用^{} 将非} :
B
值替换为0
,然后使用^{相关问题 更多 >
编程相关推荐