从稀疏矩阵创建行、列、数据 pandas 数据帧

问题描述

如何创建COO格式的稀疏矩阵,并使 pandas 数据帧既不解嵌到密集布局,又保留row,column,data的COO格式?

import numpy as np
import pandas as pd
from scipy.sparse import csr_matrix
from scipy.sparse import coo_matrix

a = np.eye(7)
a_csr = csr_matrix(a)
a_coo = a_csr.tocoo()
print(a_coo)
  (0, 0)    1.0
  (1, 1)    1.0
  (2, 2)    1.0
  (3, 3)    1.0
  (4, 4)    1.0
  (5, 5)    1.0
  (6, 6)    1.0

也就是说,我如何才能从中获得 pandas 数据帧,而不是将其解套到

pd.DataFrame.sparse.from_spmatrix(a_coo)

但保持row,column,data格式也在print操作中可见?


解决方案

要放入数据框中的值如下所示

a_coo.row, a_coo.col, a_coo.data

相关文章