问题描述
我想找到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 (将#修改为@)