【发布时间】:2014-12-23 13:46:15
【问题描述】:
我有下一个 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?
【问题讨论】: