如何在熊猫数据框中的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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...