![](/img/trans.png)
[英]How to sum a column over unique values in two other column with 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.