首页 > 解决方案 > 每个日期的唯一 ID 的累积计数

问题描述

假设我有以下 DF:

Date          ID   
2019-06-01    A
2019-06-01    B
2019-06-01    B
2019-06-02    A
2019-06-02    C
2019-06-03    C
2019-06-03    A

获取每个日期的唯一 ID 累积计数的最 Pythonic 方法是:

Date          ID   
2019-06-01    2
2019-06-02    3
2019-06-03    3

我可以按日期使用 for 循环并使用np.isin,但这在性能方面很糟糕。

谢谢

标签: pythonpandasnumpy

解决方案


让我们做

s = df.groupby('Date')['ID'].agg(list).cumsum()
s = s.map(lambda x : len(set(x))).reset_index()
s
         Date  ID
0  2019-06-01   2
1  2019-06-02   3
2  2019-06-03   3

推荐阅读