python - 熊猫将多行作为一列,添加特定列
问题描述
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()
with
training_data.query('condition').groupby('grp').agg()
解决方案
我们一起去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
推荐阅读
- visual-studio-code - Windows 10 上带有 Git Bash 的 VS Code 集成终端中的错误引号
- javascript - 如何影响烛台上色/下色类
- php - 如何从一个表中获取特定列以及从 php codeigniter 中的其他表中获取所有其他数据
- spring-boot - Spring-Boot Apache Kafka 中 ProducerConfigs 的默认值
- java - 预检响应没有 HTTP ok 状态。
- javascript - 有什么方法可以读取 angular 6 中的 word 模板并更改一些标签并下载到 pdf 文件中
- c# - ASP.Core 使用 Axios 上传图片
- swift - '无效更新:第 1 节中的行数无效
- graphql - 如何测试和自动化在 GraphQL 中实现的 API
- html - IE10上的悬停效果