熊猫将多行作为一列,添加特定列

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()

【问题讨论】:

b8 的价值如何?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 你愿意接受答案吗?

以上是关于熊猫将多行作为一列,添加特定列的主要内容,如果未能解决你的问题,请参考以下文章

在列表的熊猫列中添加特定的列表元素[重复]

在特定列上更新熊猫

如何将一列中的两列合并为日期与熊猫?

如何更新python中熊猫数据框特定列中的所有行?

如何在 Pandas 数据框中的特定位置插入一列? (更改熊猫数据框中的列顺序)

如何使用熊猫将一列移动到除标题之外的另一列[重复]