python - Pandas 中的列组添加
问题描述
我正在使用这样的数据框:
state current
0 0
0 0
0 0
0 0
1 13
1 7
1 1
1 12
0 0
0 0
0 0
1 8
1 9
我想找到状态(和电流)不为 0 的电流组的总和,并为组中的所有条目写下这个总和。理想情况下,我最终会得到这样的结果:
state current sum
0 0 0
0 0 0
0 0 0
0 0 0
1 13 33
1 7 33
1 1 33
1 12 33
0 0 0
0 0 0
0 0 0
1 8 17
1 9 17
最好的方法是将数据帧分成具有非 0 值的组,计算总和,然后重新组合数据帧?
解决方案
当你groupby
,首先检查groupby
密钥是否为0,然后我们做cumsum
df.groupby(df.state.eq(0).cumsum()).current.transform('sum')
0 0
1 0
2 0
3 33
4 33
5 33
6 33
7 33
8 0
9 0
10 17
11 17
12 17
Name: current, dtype: int64
推荐阅读
- asp.net - .NET Identity Token 无效,机器密钥相同
- python-3.x - 当我使用 python 从 CSV 文件中提取具有特定关键字的数据时,为什么会出现 KeyError?
- reactjs - 重新加载 React Router 应用程序时出现 404 错误
- ruby-on-rails - 在 Rails 5 中创建嵌套资源
- android - 如何判断变量是否在 kotlin 中初始化?
- javascript - JavaScript 中的 DOMParser 不提供 XML 元素
- javascript - JavaScript 用元素填充页面后,如何使用 Jsoup 从 URL 中提取 DOM?
- angular - 从代码中以特定格式日期显示日期?
- php - 带有 Slim 框架的 Nginx - 下载 php 文件
- xamarin - Xamarin.Android - java.lang.UnsatisfiedLinkError