当前位置:  开发笔记 > 编程语言 > 正文

熊猫组由cumsum保持列

如何解决《熊猫组由cumsum保持列》经验,为你挑选了1个好方法。

我花了几个小时试图在熊猫数据框架上做一个"累计组合".我已经查看了所有stackoverflow的答案,令人惊讶的是,它们都无法解决我的(非常基本的)问题:

我有一个数据帧:

df1 Out[8]: Name Date Amount 0 Jack 2016-01-31 10 1 Jack 2016-02-29 5 2 Jack 2016-02-29 8 3 Jill 2016-01-31 10 4 Jill 2016-02-29 5

我在尝试着

    按['姓名','日期']和

    cumsum'Anount'.

    这就对了.

所以期望的输出是:

df1 Out[10]: Name Date Cumsum 0 Jack 2016-01-31 10 1 Jack 2016-02-29 23 2 Jill 2016-01-31 10 3 Jill 2016-02-29 15

编辑:我正在简化这个问题.根据目前的答案,我仍然无法获得正确的"正在运行"的cumsum.仔细看,我希望看到累计金额"10,23,10,15".换句话说,我希望在每个连续日期看到一个人的总累计金额.注意:如果同一个人在一个日期有两个条目,我想将它们相加,然后将它们添加到正在运行的cumsum中,然后才打印总和.



1> piRSquared..:

首先设置索引,然后设置groupby.

df.set_index(['Name', 'Date']).groupby(level=[0, 1]).Amount.cumsum().reset_index()

在此输入图像描述


在OP改变了他们的问题之后,现在这是正确的答案.

df1.groupby(
    ['Name','Date']
)Amount.sum().groupby(
    level='Name'
).cumsum()

这是jezrael提供的相同答案

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有