【发布时间】:2022-12-17 19:36:52
【问题描述】:
我有两个 pandas 稀疏数据帧,big_sdf 和 bigger_sdf。
当我尝试将它们相乘时:
result = big_sdf @ bigger_sdf
我得到一个错误。
所以我尝试将这些稀疏数据帧转换为 SciPy 的 csr 矩阵并将其相乘,但转换没有成功:
from scipy.sparse import csr_matrix
csr_big = csr_matrix(big_sdf)
csr_bigger = csr_matrix(bigger_sdf)
当我运行最后一行时,我收到一条错误消息:
"ValueError: unrecognized csr_matrix constructor usage"
它只发生在较大的矩阵上,较小的矩阵成功转换。
有任何想法吗?也许有一种 Pandas 本机方法可以乘以我错过的稀疏数据帧?
提前致谢!
【问题讨论】:
-
csr_matrix不“知道”任何关于“稀疏数据帧”的具体信息。csr_matrix(big_sdf)首先执行np.as_array(big_sdf),或有效地执行big_sdf.to_numpy()。比较你的两个框架,看看有什么不同。 -
实际上,我应该首先询问完整的错误消息,或者因为你谈到了两个错误的消息。
标签: python pandas scipy sparse-matrix sparse-dataframe