gpt4 book ai didi

python - 将 Pandas DataFrame 转换为稀疏矩阵

转载 作者:太空宇宙 更新时间:2023-11-04 00:15:10 28 4
gpt4 key购买 nike

这是我的代码:

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)

我的数据由两列组成,分别是 movie_id 和 user_id。

 user_id      movie_id

5 1000

6 1007

我想将数据转换为稀疏矩阵。我首先创建了一个交互矩阵,其中行表示 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

如有任何帮助,我们将不胜感激。

最佳答案

如果您同时拥有行索引和列索引(在您的例子中分别为 movie_iduser_id),建议使用 COO 格式进行创建。

您可以像这样将其转换为稀疏格式:

import scipy
sparse_mat = scipy.sparse.coo_matrix((t.values, (df.movie_id, df.user_id)))

重要的是,请注意构造函数如何通过将电影 ID 和用户 ID 作为数据参数传递来给出稀疏矩阵的隐式形状。
此外,您可以将此矩阵转换为您想要的任何其他稀疏格式,例如 CSR。

关于python - 将 Pandas DataFrame 转换为稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51240096/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com