【问题标题】:Did not quite understand what pandas `itertuples` is doing in the following code不太明白 pandas `itertuples` 在下面的代码中做了什么
【发布时间】:2019-08-03 23:18:39
【问题描述】:

我正在研究MovieLens Dataset 的推荐引擎示例。我看到我们可以创建一个用户项目矩阵来计算它们之间的相似性,其中我们将用户作为索引(或行号),将项目(电影)作为列,每个用户对每部电影的评分作为数据矩阵。我相信这就是下面的代码正在做的事情,它看起来很强大,但是,我不清楚它实际上是如何工作的。除了 itertuples 之外,我们还有什么其他方法可以使用(简单的枢轴或转置?有什么优点或缺点吗?)

import pandas as pd
import numpy as np

r_cols = ['user_id', 'movie_id', 'rating', 'unix_timestamp']
ratings = pd.read_csv('ml-100k/u.data', sep='\t', 
names=r_cols,encoding='latin-1')
n_users = ratings.user_id.unique().shape[0]
n_items = ratings.movie_id.unique().shape[0]

data_matrix = np.zeros((n_users, n_items))
for line in ratings.itertuples():
    data_matrix[line[1]-1, line[2]-1] = line[3]

【问题讨论】:

    标签: python pandas data-science recommendation-engine


    【解决方案1】:

    听起来你需要pivot

    ratings.pivot(index='user_id', columns='movie_id', values='rating')
    

    【讨论】:

      猜你喜欢
      • 2016-02-14
      • 2020-01-04
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      • 2019-11-21
      • 2019-06-24
      相关资源
      最近更新 更多