有没有一种方法可以从a转换pandas.SparseDataFrame为scipy.sparse.csr_matrix,而不会在内存中生成密集矩阵?
pandas.SparseDataFrame
scipy.sparse.csr_matrix
scipy.sparse.csr_matrix(df.values)
不起作用,因为它生成一个密集矩阵,该矩阵被强制转换为csr_matrix。
csr_matrix
提前致谢!
熊猫文档讨论了将稀疏稀疏性实验转换为SparseSeries.to_coo:
http://pandas-docs.github.io/pandas-docs-travis/sparse.html#interaction-with- scipy-sparse
================
编辑-这是来自multiindex的特殊功能,而不是数据框。参见其他答案。注意日期的差异。
============
从0.20.0开始,存在sdf.to_coo()和的multiindex ss.to_coo()。由于稀疏矩阵本质上是2d的,因此对于(有效)1d数据序列要求多索引是有意义的。而数据框可以代表一个表或二维数组。
sdf.to_coo()
ss.to_coo()
当我第一次回答这个问题时,这个稀疏的数据框/系列功能是实验性的(2015年6月)。