gpt4 book ai didi

python - 评级标准化

转载 作者:太空宇宙 更新时间:2023-11-03 18:07:20 27 4
gpt4 key购买 nike

我有下一个 pandas DataFrame df:

user item rating
1 1 1
1 2 1
1 3 3
2 1 2
2 2 2
2 3 1
...

我想要规范化评分,定义0到1之间的所有评分值。方法很简单,只需将某个用户的每个值除以该用户的最大值即可。

我创建了下一个代码:

ratingNormalised = []

for user in df['user'].unique:
dfUser = df[df['user'] == user]
userNormalised = (dfUser['rating']/max(dfUser['rating'])).tolist()
ratingNormalised.extend(userNormalised)

df['ratingNorm'] = Series(ratingNormalised, index=df.index)

是否有可能找到一些更好的解决方案,可能更Pythonic?

最佳答案

对用户进行分组并应用 lambda:

In [73]:

df['norm rating'] = df.groupby('user')['rating'].apply(lambda x: x/x.max())
df

Out[73]:
user item rating norm rating
0 1 1 1 0.333333
1 1 2 1 0.333333
2 1 3 3 1.000000
3 2 1 2 1.000000
4 2 2 2 1.000000
5 2 3 1 0.500000

关于python - 评级标准化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com