簡體   English   中英

Pandas:從列到唯一值的總和值

[英]Pandas: sum values from column to unique values

我有數據幀

ID    time    coeff   category
111    12      1.5     shop
111    15      1.5       shop
222    12      0.8     shop
222    18      0.8     shop

我需要得到

category    unique_users
 shop         2.3

如果我試試

result = df.groupby(['category']).agg({'ID': pd.Series.nunique}).rename(columns={ 'member_id': 'unique_users'}).reset_index()

我得到2 ,因為它返回df.ID唯一。 如何在df.coeff為唯一的df.ID求和值?

這是一種方式

In [2314]: (df.groupby('category')
              .apply(lambda x: x.groupby('ID').coeff.first().sum())
              .reset_index(name='unique_users'))
Out[2314]:
  category  unique_users
0     shop           2.3

通過使用drop_duplicates

df.drop_duplicates(['ID','category']).groupby('category').agg({'coeff':'sum'})
    Out[763]: 
              coeff
    category       
    shop        2.3

這應該做你想要的:

df.drop_duplicates(subset=['ID']).groupby(['category']).agg(sum).drop(['ID', 'time'], axis=1)

Out[133]: 
          coeff
category       
shop        2.3

暫無
暫無

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

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