簡體   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