[英]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.