簡體   English   中英

Groupby計算Set中唯一值的頻率

[英]Groupby to Count Frequency of Unique Values in Set

我有這樣的DF

   User      Dept     
    1        Cook
    1        Cook
    1        Home
    2        Sports
    2        Travel
    2        Cook

我想計算每個部門內的獨特用戶:

   Dept      User
   Cook      2
   Home      1
   Sports    1
   Travel    1

注意Cook部門只有兩個,因為即使在'Cook'中找到三個用戶,也只有兩個唯一用戶

我嘗試過以下方法:

 df.groupby(['Dept']).count()  -- counts 'Cook' three times
 df.drop_duplicates(['Dept']).groupby('Dept')['User'].sum() -- over counts all departments 

我知道答案是一個群體,我似乎無法弄明白!

你可以使用nunique

>>> df.groupby("Dept")["User"].nunique()
Dept
Cook      2
Home      1
Sports    1
Travel    1
Name: User, dtype: int64
>>> df.groupby("Dept")["User"].nunique().reset_index()
     Dept  User
0    Cook     2
1    Home     1
2  Sports     1
3  Travel     1

(請注意,我使用了您的示例數據,在Sports中只有一個唯一用戶。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM