首页 > 解决方案 > Pandas nunique() 但仅返回 value.counts() > 1

问题描述

我有一个带有用户 ID 的数据框,它是users['user id'].nunique()返回唯一用户数的结果。返回每个唯一用户 ID的users['user id'].value_counts()计数。有没有一种方法可以将两者结合起来,我希望出现多次的用户 id 的数量(即 2 个或更多)

任何建议都非常感谢

标签: pythonpandasdataframe

解决方案


您可以在以下输出上使用掩码value_counts

>>> import pandas as pd
>>> d = {'user_id': ['Apple', 'Banana', 'Carrot', 'Carrot', 'Apple']}
>>> users = pd.DataFrame(data=d)
>>> users
  user_id
0   Apple
1  Banana
2  Carrot
3  Carrot
4   Apple
>>> counts = users['user_id'].value_counts()
>>> counts
Carrot    2
Apple     2
Banana    1
Name: user_id, dtype: int64
>>> counts_greater_than_1 = counts[counts > 1]
>>> counts_greater_than_1
Carrot    2
Apple     2
Name: user_id, dtype: int64
>>> len(counts_greater_than_1)
2

推荐阅读