python - 每个日期的唯一 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
,但这在性能方面很糟糕。
谢谢
解决方案
让我们做
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
推荐阅读
- sql - 当日为周末或工作日时的SQL语句案例并连接表
- android - Animate LayoutChanges 无法正常工作
- javascript - 将所有时间记录和会话记录添加到 js 蛇游戏
- python - 尝试从晨星下载股票价格数据时出错
- android - 安装签名的 apk 后,我的应用程序的行为有所不同
- javascript - NodeJS - 控制器 - 来自集合的多个查询 + forEach
- java - Java 读取 JSON 作为关联数组,如 javascript 和 PHP ( ['key']['subKey'] )
- bash - bash 脚本中变量的默认值
- javascript - 无法使用 clearTimeout 函数停止执行 setTimeout
- angular-cli - Angular CLI 6:将库依赖项放在哪里