python - 在有条件的熊猫中查找重复项(Python)
问题描述
我想获取article_id
每个的重复数merchant_id
,其中zip_code
不相同。请看下面的例子:
桌子
merchant_id article_id zip_code
1 4555 1000
1 4555 1003
1 4555 1002
1 3029 1000
2 7539 1005
2 7539 1005
2 7539 1002
2 1232 1006
3 5555 1000
3 5555 1001
3 5555 1002
3 5555 1003
输出表
merchant_id count_duplicate
1 3
2 2
3 4
到目前为止,我能够返回所有重复的行 - 请参见下面的代码:
df[df.duplicated('product_id',keep=False)==True
解决方案
我们可以使用groupby
withnunique
然后 filter( query
) 仅组> 1
。nunique
代表“唯一值的数量”。
dfn = (
df.groupby(['merchant_id', 'article_id'])['zip_code'].nunique()
.reset_index(name='count_duplicate')
.query('count_duplicate > 1')
)
merchant_id article_id count_duplicate
1 1 4555 3
3 2 7539 2
4 3 5555 4
推荐阅读
- jquery - $.when() 相当于获取数据
- c# - 使用未分配的局部变量 - 但我知道当程序到达它时,它将被分配
- sql - oracle sql 正则表达式提取以后缀结尾的单词(.sh .py 等)
- mongodb - 使用 javascript 正则表达式的 Mongodb '$where' 查询
- c# - Visual Studio 2015。无法发布我的项目 - 似乎构建良好
- javascript - 检查 js 文件中的当前页面以呈现不同的部分
- linux - shell脚本中的意外令牌“完成”
- python - 十进制值的字符串,不四舍五入
- tensorflow - Tensorflow:tf.constant(2) 和 2 有什么区别
- hadoop - 自定义 Partitioner 以平衡减速器的输入