如何为pandas groupby设计agg功能

时间:2015-11-09 14:12:17

标签: python pandas aggregate

我的dataFrame是这样的:

user,rating, f1,f2,f3,f4

20, 3, 0.1, 0, 3, 5

20, 4, 0.2, 3, 5, 2

18, 4, 0.6, 8, 7, 2

18, 1, 0.7, 9, 2, 7

我想为用户计算个人资料,例如

对于用户20,它应该是3*[0.1,0,3,5]+4*[0.2,3,5,2]
这是f1f4

的加权和

我应该如何编写agg函数来完成此任务?

df.groupby('user').agg(....)

1 个答案:

答案 0 :(得分:1)

你可以试试这个:

df.groupby('user').apply(lambda x : sum(x['rating'] * (x['f1']+x['f2']+x['f3']+x['f4'])))