python - 如何在数据表框架中按组查找唯一值
问题描述
我创建了一个数据表框架,如下所示,
DT_EX = dt.Frame({'cid':[1,2,1,2,3,2,4,2,4,5],
'cust_life_cycle':['Lead','Active','Lead','Active','Inactive','Lead','Active','Lead','Inactive','Lead']})
在这里,我有三个独特的客户生命周期,每个计数都被发现为
DT_EX[:, count(), by(f.cust_life_cycle)]
除此之外,我还有五个客户 ID,这些计数为
DT_EX[:, count(), by(f.cid)]
现在我想看看每个客户生命周期中存在多少个唯一客户 ID,
DT_EX[:, {'unique_cids':dt.unique(f.cid)}, by(f.cust_life_cycle)]
它应该显示为潜在客户有 3 个唯一的客户 ID,例如 (1,2,5),活动用户有 2 个唯一的客户 ID (2,4),依此类推。
我无法按预期得到它,你能告诉我如何修复它吗?
仅供参考:我试图在 R data.table 框架上重现相同的内容,它的工作原理。
DT_EX[, uniqueN(cid), by=cust_life_cycle]
解决方案
该dt.unique
功能不适用于组(尚)。因此,实现您需要的一种方法是首先按生命周期 + customerID 分组,然后在第二步中仅按生命周期重新分组:
>>> DT_EX[:, count(), by(f.cust_life_cycle, f.cid)]\
... [:, {"unique_cids": count()}, by(f.cust_life_cycle)]
| cust_life_cycle unique_cids
-- + --------------- -----------
0 | Active 2
1 | Inactive 2
2 | Lead 3
[3 rows x 2 columns]
推荐阅读
- python - TypeError: unhashable type: 'list' 用于比较 pandas 列
- powershell - 使用 Powershell 计算特定层中仅子文件夹的总数
- java - Android Room Database:如何在 DAO @Query 中正确选择“tableName”?
- reactjs - React:在功能组件中获取后更改状态
- python - 在值之间添加行完全阶乘和插值
- microsoft-graph-api - 检索在 ms 图中给出 403 错误的线程和帖子
- java - 重启后如何终止绑定的 ForegroundService
- javascript - 使用 p5js 创建图像掩码
- c++ - 如何使用 VSCode 在 ubuntu 中通过 gdb 和 shell 脚本调试 C++ 代码
- reactjs - 如何在 React 中的映射组件上使用菜单或弹出框?