使用itertuples进行中心余弦归一化

问题描述

我正在尝试使用pandas在python中建立一个推荐系统。

我有一个由userId组成的矩阵dataFrame和包含每个用户(名为movie_user)的每部电影的得分的电影,如下所示:

title   Salt (2010)  Salton Sea,The (2002)  Salvador (1986)  \
userId                                                         
1               NaN                     NaN              NaN   
2               NaN                     2.0              NaN   
3               NaN                     NaN              NaN   
4               3.0                     NaN              1.3   
5               NaN                     NaN              NaN   
...             ...                     ...              ...   
606             NaN                     NaN              NaN   
607             NaN                     NaN              NaN   
608             1.2                     NaN              3.9   
609             NaN                     NaN              NaN   
610             3.0                     3.5              NaN 

我想做的是使用居中余弦对评级进行归一化。 对于每一行,找到用户的平均分数(不计算NaN)。用平均分数减去每个值(不是NaN)。然后将每个NaN都替换为0。

这里有我正在尝试做的一些伪代码

for (every user) {
averagescore = (total score of this user) / (number of movies reviewed)
   for (every row of this user) {
   if (value != NaN) {
   value = value - averagescore
      else {
         value = 0;
         }
      }
   }
}

我试图做的是遍历行并找到平均值,但是所有输出都是NaN:

for row in movie_user.itertuples():
    avgscore = 0
    for x in row:
        avgscore = avgscore + x
    print(avgscore)

我是熊猫新手,所以如果有人可以帮助,将不胜感激,谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...