我的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]
这是f1
到f4
我应该如何编写agg
函数来完成此任务?
df.groupby('user').agg(....)
答案 0 :(得分:1)
你可以试试这个:
df.groupby('user').apply(lambda x : sum(x['rating'] * (x['f1']+x['f2']+x['f3']+x['f4'])))