python - 值来自行总和的新列(python)
问题描述
我需要创建一个新列,其值来自 3 行的总和。我的表如下所示:
shoes_type category number
sneakers A 1
sneakers B 2
sneakers C 3
heels A 2
heels B 1
heels C 7
新列预计如下:
shoes_type category number total
sneakers A 1 NaN
sneakers B 2 NaN
sneakers C 3 6
heels A 2 NaN
heels B 1 NaN
heels C 7 10
新列是“数字”列每 3 行的总和。我想将每 3 行的总和放在最后一行,并让其他行为 NaN。
我怎样才能通过使用 python 来实现它?
谢谢 :)
解决方案
尝试transform
与mask
byduplicated
df['total'] = df.groupby('shoes_type')['number'].transform('sum').mask(df['shoes_type'].duplicated(keep='last'))
df
Out[52]:
shoes_type category number total
0 sneakers A 1 NaN
1 sneakers B 2 NaN
2 sneakers C 3 6.0
3 heels A 2 NaN
4 heels B 1 NaN
5 heels C 7 10.0
推荐阅读
- reactjs - Reactjs,类组件到钩子
- swift - 测试动态按钮视图
- jquery - 从 daterangepicker 中禁用或删除 mintues 下拉菜单
- .net - 通过依赖注入使用 Blazor Webassembly 进行 gRPC-Web 通道身份验证
- python - CNN Scraper 偶尔在 python 中工作
- ios - iOS 登录提示使用捆绑名称取消关注
- python - Python Selenium - 尝试在表格元素中的文本更改时编写等待条件
- python - Anaconda 中的 python 环境问题
- c++ - 等到变量变为零
- swift - 在 XCUITest/Simulator 中更改键盘