Python 如何使用scipy'将数据帧转换为稀疏矩阵;s csr_矩阵?

Python 如何使用scipy'将数据帧转换为稀疏矩阵;s csr_矩阵?,python,pandas,scipy,sparse-matrix,Python,Pandas,Scipy,Sparse Matrix,我想使用scipy库中的csr\u matrix将数据帧转换为稀疏矩阵,但首先我必须将其转换为稀疏矩阵。在pandas的早期版本中,我使用了pd.sparsattaframe(df).to_coo(),但由于pandas 1.0.0此方法不受欢迎。有人知道如何使用最新的api执行这种转换吗。我使用了这个迁移并尝试了各种组合,但仍然无法达到预期的效果。 遵循指南,当我执行以下操作时 csr_matrix(pd.DataFrame.sparse.from_spmatrix(df).to_coo())

我想使用scipy库中的
csr\u matrix
将数据帧转换为稀疏矩阵,但首先我必须将其转换为稀疏矩阵。在pandas的早期版本中,我使用了
pd.sparsattaframe(df).to_coo()
,但由于
pandas 1.0.0
此方法不受欢迎。有人知道如何使用最新的api执行这种转换吗。我使用了这个迁移并尝试了各种组合,但仍然无法达到预期的效果。 遵循指南,当我执行以下操作时

csr_matrix(pd.DataFrame.sparse.from_spmatrix(df).to_coo())
我得到这个错误

AttributeError: 'DataFrame' object has no attribute 'tocsc'

有谁能帮我解决这个问题吗?我还找到了其他帖子,但在我的案例中帮不了我,使用你共享的第三个链接,你可以使用
pd.SparseDtype
将你的
df
数据转换为稀疏数据,如下所示

df_sparsed = df.astype(pd.SparseDtype("float", np.nan)
您可以阅读更多关于
pd.SparseDtype
的信息,为数据选择正确的参数,然后在上面的命令中使用它,如下所示:

csr_matrix(df_sparsed.sparse.to_coo()) # Note you need .sparse accessor to access .to_coo()
简单的一个班轮

csr_matrix(df.astype(pd.SparseDtype("float", np.nan)).sparse.to_coo())

除非产生错误的原因很明显,否则请始终包含完整的回溯。