我有一个数据框
df
user amount
1 18.90
2 1092.22
2 293.01
1 40.00
我想将每个用户数量除以该用户数量的范数。因此,结果数据框将是
df
user amount
1 0.4272
2 0.9658
2 0.2591
1 0.9042
因为用户1的范数是norm1=sqrt(18.90^2+40^2)=44.24,所以我们将所有用户1的金额除以norm1; 并且用户2的范数为,norm1=sqrt(1092.22^2+293.01^2)=1130.84因此我们将用户2的所有金额除以norm2。
到目前为止,我有
norms = df.groupby(['user'])['amount'].apply(lambda x: np.sqrt(np.sum(x**2))).values
df.groupby(['user'])['amount'].divide(norms)
>>> AttributeError: Cannot access callable attribute 'divide' of 'SeriesGroupBy' objects, try using the 'apply' method
但这给出了上面的错误。norms确实计算正确,但是后来我似乎无法.divide()在每个用户数量上使用该方法。
如何将每个用户数量除以用户数量规范?
喵喵时光机
相关分类