熊猫将多行作为一列,添加特定列
Posted
技术标签:
【中文标题】熊猫将多行作为一列,添加特定列【英文标题】:Pandas rows multiple rows as one, adding specific column 【发布时间】:2021-04-02 23:40:17 【问题描述】: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]
我的训练数据:
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
期望的输出:
a b condition
401 2 True (1+1)
410 2 True
420 2 True
425 8 True (2+3+3)
已删除所有 False 条件,并添加了“b”列和修改后的值。
我怎样才能得到这个想要的输出?
我知道将.cumsum()
用于
training_data.query('condition').groupby('grp').agg()
【问题讨论】:
b
对8
的价值如何?a=425
?
@MayankPorwal ,嘿,伙计,因为你有两个尾随的假布尔值,因此我需要将它们加在一起,所以 2+3+3 = 8
【参考方案1】:
这里是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
【讨论】:
@BisalDhakal 你愿意接受答案吗?以上是关于熊猫将多行作为一列,添加特定列的主要内容,如果未能解决你的问题,请参考以下文章