简体   繁体   English

Pandas 行多行为一,添加特定列

[英]Pandas rows multiple rows as one, adding specific column

import pandas as pd 

training_data = pd.DataFrame()

training_data['a'] = [401,401.2,410,420,425,426, 426.1]
training_data['b'] = [1,1,2,2,2,3,3]

training_data['condition'] = [True, False, True, True, True,False, False]

My training data:我的训练数据:

a         b      condition
401       1        True
401.2     1        False
410       2        True
420       2        True
425       2        True
426       3        False
426.1     3        False

Desired output:所需的 output:

a         b      condition
401       2        True         (1+1)

410       2        True
420       2        True
425       8        True        (2+3+3)

All False conditions have been deleted and column 'b' has been added with the amended values.所有 False 条件已被删除,并且“b”列已添加修改后的值。

How can I get this desired output?我怎样才能得到这个想要的 output?

I am aware of using .cumsum() with我知道使用.cumsum()

training_data.query('condition').groupby('grp').agg()

Here we go with cumsum这里我们 go 与cumsum

out = training_data.groupby(training_data['condition'].cumsum()).agg({'a':'first','b':'sum','condition':'first'})
Out[271]: 
               a  b  condition
condition                     
1          401.0  2       True
2          410.0  2       True
3          420.0  2       True
4          425.0  8       True

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM