首页 > 解决方案 > 如何将稀疏 numpy 数组转换为 Dataframe?

问题描述

下面是代码片段,

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder',OneHotEncoder(),[2,3,4])],remainder='passthrough')
X = np.array(ct.fit_transform(x_data))
X.shape

我得到如下形状的输出

()

当我尝试打印 X 时,我得到如下输出

array(<8820x35 sparse matrix of type '<class 'numpy.float64'>'
    with 41527 stored elements in Compressed Sparse Row format>, dtype=object)

现在当我尝试将此数组转换为数据框时

X = pd.DataFrame(X)

我得到以下错误

ValueError: Must pass 2-d input

如何将我的 numpy 数组转换为数据框?

标签: arrayspython-3.xpandasnumpymachine-learning

解决方案


所以首先,将稀疏矩阵从 csr_matrix 转换为普通数组

 X = X.toarray()
 df  = pd.DataFrame(X)

以上应该工作


推荐阅读