python - 在数据框中切换标志之间的行的总和/平均值
问题描述
我有一个这样的数据框
id power flag
0 20 0
1 25 0
2 26 1
3 30 1
4 18 0
5 30 0
6 19 0
7 21 1
8 23 0
我正在尝试获取功率列的平均/总和,输出应如下所示
0 45 (20 +25)
1 56 (26 + 30)
2 67 (18 +30 +19)
3 21 (21)
4 23 (23)
另外,如果标志不是二进制的怎么办?
有人可以帮我解决这些吗?谢谢
解决方案
IIUC,使用作为分组器的布尔值的累积和diff.ne(0)
,并且只是sum
df.groupby(df.flag.diff().ne(0).cumsum()).power.sum()
flag
1 45
2 56
3 67
4 21
5 23
Name: power, dtype: int64
推荐阅读
- java - i am having error with open and closing keys
- elasticsearch - 使用 Akka Streams,我如何知道源何时完成?
- mysql - 如何在没有模式的情况下将 JSON 存储在数据库中
- reactjs - div 标签和样式组件中的任何类型的问题(Gatsby 应用程序)
- ios - 如何将 UITableViewCell 中 textField 的值转换为 textFieldDelegate 方法 shouldChangeCharactersIn?
- php - 在imagick中生成fopen文件的问题
- python - For 循环没有按预期执行,顺序很重要,所以不能在这里使用 set()
- python - 如何在字符串列表中查找数字/数字并在数字/数字存在时替换 1,否则为 0?
- python - Py2app 没有找到工作目录
- http - 为 http: ^0.12.0 包设置 ssl