pandas - 每组先前行的总和
问题描述
我有一个看起来像这样的数据框。
d = {'name': ["eric", "eric","eric", "sean","sean","sean"], 'values': [1, 5, 7, 4, 2, 5]}
df = pd.DataFrame(data=d)
我正在尝试添加一个名为 df['sum'] 的新列,它将 df['name'] 列中每个唯一名称的前一行的值相加,使其看起来像这样:
name values sum
eric 1 1
eric 5 6
eric 4 10
sean 7 7
sean 2 9
sean 5 14
我尝试使用以下内容,但无法弄清楚每次获得新名称时如何让它重新开始。
for i in df['name']:
df['sum'] = df['values'].cumsum()
解决方案
利用groupby().cumsum()
df.groupby('name').values.cumsum()
推荐阅读
- html - 在所有页面上打印固定的页眉和页脚
- python - ImportError:仅在从 .bat 文件运行时缺少必需的依赖项 ['numpy']
- php - 如何从数据库中选择具有相同查询但表中条件不同的数据?
- javascript - 在Javascript中获取数字之间的数字步骤
- android - 将上下文传递给许多方法是否正常?
- javascript - 如何处理多个字符串节点命令行参数?
- javascript - 嵌套 v-tabs:有条件地渲染子选项卡以显示滑块
- vb.net - 使用结构化数组填充 DataGridView 的问题
- c# - 如何使用 REST api 将文件存储卷挂载到 azure 容器实例
- javascript - 根据 3 个选择器更改表格行