df['New']=df.groupby('contract').apply(lambda x : x['amount'][x['type']=='CBP'].cumsum()).reset_index(level=0,drop=True)
df
Out[258]:
contract amount type New
0 A 123 ABC NaN
1 A 341 ABC NaN
2 A 652 CBP 652.0
3 A 150 CBP 802.0
4 B 562 DEF NaN
5 B 674 ABC NaN
6 B 562 CBP 562.0
7 B 147 CBP 709.0
这是一种方法。我设置了一些虚构的数据来测试。在
输出是相同格式的dataframe,但包含
CBP
事务的总和。在编辑:我觉得@Wen的回答更符合你的要求,但万一你想把结果写成一个系列:
一种简单的方法是,首先按要查找的事务类型“tla”筛选事务列表,然后应用groupby和所需的任何聚合方法:
这将产生一系列你的答案。在
借用日本数据:-)
相关问题 更多 >
编程相关推荐