原始用户评分数据格式如下:
现在要做的是把它转为用户--评分矩阵格式
n_users = sdf['user_id'].drop_duplicates() #获取index
n_items = sdf['item_name'].drop_duplicates() #获取columns
df_ = pd.DataFrame(index=n_users, columns=n_items) #新定义一个数据框df
for i in range(len(sdf)):
row_i = sdf.loc[[i]]
user_id = (row_i['user_id'].tolist())[0]
items_name = (row_i['item_name'].tolist())[0]
rating = (row_i['rating'].tolist())[0]
df_.at[user_id,items_name] = rating
到这一步,评分矩阵已出来了。
df = df_.fillna(0) #将所有的NaN值用0填充
这样,就得到了用户--节目矩阵,如下: