繁体   English   中英

Pandas nunique() 但只返回 value.counts() > 1

[英]Pandas nunique() but only return value.counts() > 1

我有一个带有用户 ID 的数据users['user id'].nunique()users['user id'].nunique()返回用户的唯一计数。 users['user id'].value_counts()返回每个唯一用户 id 的计数。 有没有办法将两者结合起来,我想要出现不止一次的用户 id 数量(即 2 个或更多)

非常感谢任何建议

您可以在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

还有其他方法可以获取多次出现的用户 ID 的数量。 您可以使用duplicated(keep=False)来创建一个掩码来查看重复的值,这样您就可以看到只有出现多次的值的DataFrame

mask=users['user id'].duplicated(keep=False)
print(users[mask])

现在如果你想知道他们总共有多少你可以做users[mask].count()但你也可以检查每次重复多少次df[mask].groupby(by='user id').count()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM