dar*_*agh 8 python datetime dataframe pandas pandas-groupby
我有一个这样的数据框:
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
Run Code Online (Sandbox Code Playgroud)
并且我想获取“公司”列随时间的唯一值的累积数量。因此,如果公司在以后出现,则不会再计算在内。
我的预期输出是:
date cumulative_count
2019-01-01 2
2019-01-03 3
2019-01-04 3
2019-01-05 4
Run Code Online (Sandbox Code Playgroud)
我试过了:
df.groupby(['date']).company.nunique().cumsum()
Run Code Online (Sandbox Code Playgroud)
但是,如果同一家公司在不同的日期出现,则此重复计算。
使用duplicated+ cumsum+last
m = df.duplicated('company')
d = df['date']
(~m).cumsum().groupby(d).last()
Run Code Online (Sandbox Code Playgroud)
date
2019-01-01 2
2019-01-03 3
2019-01-04 3
2019-01-05 4
dtype: int32
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |