我有一个像这样的数据框:
id date company ......
123 2019-01-01 A
224 2019-01-01 B
345 2019-01-01 B
987 2019-01-03 C
334 2019-01-03 C
908 2019-01-04 C
765 2019-01-04 A
554 2019-01-05 A
482 2019-01-05 D
我想获取“公司”列随着时间的推移唯一值的累积数量。因此,如果一家公司稍后出现,则不会再次计算在内。
我的预期输出是:
date cumulative_count
2019-01-01 2
2019-01-03 3
2019-01-04 3
2019-01-05 4
我试过了:
df.groupby(['date']).company.nunique().cumsum()
但如果同一家公司出现在不同的日期,则重复计算。
Using duplicated
+ cumsum
+ last
m = df.duplicated('company')
d = df['date']
(~m).cumsum().groupby(d).last()
date
2019-01-01 2
2019-01-03 3
2019-01-04 3
2019-01-05 4
dtype: int32
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)