微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在熊猫数据框中的2列上进行不同值的累加总和

如何解决如何在熊猫数据框中的2列上进行不同值的累加总和

我想找到2列分组依据上一列的累积总和。我想获取名称”列随时间的唯一值的累积数量。因此,如果以后再出现一个名称,则不会再计算在内。

我有一个像这样的数据框:

date           company   names
2019-01-01        A      Joe
2019-01-01        B      Bill
2019-01-01        B      Ben
2019-01-03        C      Candy
2019-01-03        C      Cindy
2019-01-04        C      Cindy
2019-01-04        A      Julia
2019-01-05        A      Joe
2019-01-05        D      Daniel

我的预期输出

date           company   Cumulative name count
2019-01-01        A       1
2019-01-01        B       2     
2019-01-03        C       2      
2019-01-04        C       2
2019-01-04        A       2
2019-01-05        A       2
2019-01-05        D       1

我在堆栈溢出时遇到了这个问题:How to perform a cumulative sum of distinct values in pandas dataframe

对于该链接,我遵循此解决方案,以求在一列(即日期)上的累计总和:

df = df.sort_values('date')
(df.drop_duplicates(['name'])
   .groupby('date')
   .size().cumsum()
   .reindex(df['date'].unique())
   .ffill()
)

仅针对日期列的名称计数:

    date          Cumulative name count
    2019-01-01     3    
    2019-01-03     5
    2019-01-04     6
    2019-01-05     7

但是我现在想对数据和公司栏目都这样做。如果我在分组中未包含公司列,那么仍然无法为我提供正确的数字。是否有类似的方法针对唯一名称的累积计数在2列中进行此累积和?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。