小编Akh*_*der的帖子

将 Pandas DataFrame 转换为稀疏矩阵

这是我的代码:

data=pd.get_dummies(data['movie_id']).groupby(data['user_id']).apply(max)

df=pd.DataFrame(data)

replace=df.replace(0,np.NaN)

t=replace.fillna(-1)

sparse=sp.csr_matrix(t.values)
Run Code Online (Sandbox Code Playgroud)

我的数据由两列组成,即 movie_id 和 user_id。

 user_id      movie_id

   5             1000 

   6             1007 
Run Code Online (Sandbox Code Playgroud)

我想将数据转换为稀疏矩阵。我首先创建了一个交互矩阵,其中行表示 user_id,列表示 movie_id,其中正交互为 +1,负交互为 -1。然后我使用 scipy 将其转换为稀疏矩阵。我的结果如下所示:

(0,0)-1

(0,1) -1

(0,2)1

但我真正想要的是这样的:

(1000,0)-1

(1000,1)1

(1007,0)-1

任何帮助,将不胜感激。

python recommendation-engine dataframe python-3.x pandas

2
推荐指数
1
解决办法
8402
查看次数