pandas.Series.sparse.to_coo # 系列.稀疏。to_coo ( row_levels = (0,) , column_levels = (1,) , sort_labels = False ) [来源] # 从具有 MultiIndex 的系列创建 scipy.sparse.coo_matrix。 使用 row_levels 和 column_levels 分别确定行和列坐标。 row_levels 和column_levels 是级别的名称(标签)或编号。 {row_levels, column_levels} 必须是 MultiIndex 级别名称(或数字)的分区。 参数: row_levels元组/列表 column_levels元组/列表 sort_labels bool, 默认 False在形成稀疏矩阵之前对行和列标签进行排序。当row_levels和/或column_levels引用单个级别时,设置为True可以加快执行速度。 返回: y scipy.sparse.coo_matrix 行列表(行标签) 列列表(列标签) 例子 >>> s = pd.Series([3.0, np.nan, 1.0, 3.0, np.nan, np.nan]) >>> s.index = pd.MultiIndex.from_tuples( ... [ ... (1, 2, "a", 0), ... (1, 2, "a", 1), ... (1, 1, "b", 0), ... (1, 1, "b", 1), ... (2, 1, "b", 0), ... (2, 1, "b", 1) ... ], ... names=["A", "B", "C", "D"], ... ) >>> s A B C D 1 2 a 0 3.0 1 NaN 1 b 0 1.0 1 3.0 2 1 b 0 NaN 1 NaN dtype: float64 >>> ss = s.astype("Sparse") >>> ss A B C D 1 2 a 0 3.0 1 NaN 1 b 0 1.0 1 3.0 2 1 b 0 NaN 1 NaN dtype: Sparse[float64, nan] >>> A, rows, columns = ss.sparse.to_coo( ... row_levels=["A", "B"], column_levels=["C", "D"], sort_labels=True ... ) >>> A <3x4 sparse matrix of type '<class 'numpy.float64'>' with 3 stored elements in COOrdinate format> >>> A.todense() matrix([[0., 0., 1., 3.], [3., 0., 0., 0.], [0., 0., 0., 0.]]) >>> rows [(1, 1), (1, 2), (2, 1)] >>> columns [('a', 0), ('a', 1), ('b', 0), ('b', 1)]