python-3.x - 具有多个 groupby 的特定值的唯一列值的数值聚合
问题描述
- 考虑一个熊猫数据框
用户基于 r_no 在相同值上打开的唯一 cam_id 的数字聚合,输出应该类似于
建议(我试过 group by 似乎我增加了我有一百万行的复杂性)
df = pd.DataFrame()
df['r_no'] = [1,1,1,2,3,1,1,1,2]
df['user'] = ['sam','sam','sam','sam','peter','jack','jack','Kris','peter']
df['value'] = [76,76,7,8,8,2,29,2,8]
df['cam_id'] = ['ab','abc','ab','ab','ab','abcd','abcd','abcd','ab']
df
解决方案
利用:
(df.merge(df[df['r_no.']==1].groupby(['r_no.','user','value'])['cam_id']
.nunique()
.rename('count_unique').reset_index(),
on=['r_no.','user','value'], how='left').fillna(0))
输出:
r_no. user value cam_id count_unique
0 1 sam 76 ab 2.0
1 1 sam 76 abc 2.0
2 1 sam 7 ab 1.0
3 2 sam 8 ab 0.0
4 2 peter 8 ab 0.0
5 1 jack 2 abcd 1.0
6 1 jack 29 abcd 1.0
7 1 kris 2 abcd 1.0
8 2 peter 8 ab 0.0
推荐阅读
- tensorflow - 验证集和测试集的结果不同
- python - 如何在 Python 中的每个循环周期后获取下一个 n[0:1] 字母?
- actionscript-3 - 我如何使用以下课程?我应该在我的 .fla 文件中写什么?
- javascript - 当我使用部分网站崩溃
- php - 每当一个新用户注册时,他一直在我的 php 项目中看到另一个用户输入的数据
- javascript - d3.js 正在渲染黑色矩形而不是地图
- sql - 键入ORM innerJoin 表并按连接表过滤
- excel - 从一列单元格创建新工作表,同时避免重复
- c++ - 在向量中重复元素并使用 Eigen 在所有元素上应用一组不同函数的最有效方法是什么?
- typescript - 在角度 8 中不使用 [(ngModel)] 更新 innerHTML 值