将压缩的稀疏矩阵转换为数据帧

时间:2019-08-29 13:31:30

标签: python python-3.x pandas numpy dataframe

当试图将一个大致(2,000,000x3)个热编码值数组转换为数据帧时,我遇到一个“ DataFrame构造函数未正确调用!”错误。

我也明确尝试过将数组包装在np.asarray()中,但是会出现“必须通过二维输入”错误。

enc = skp.OneHotEncoder()
X_ismale = enc.fit_transform(X.IsMaleBucket.values.reshape(-1,1))
X_ismale = pd.DataFrame(X_ismale,columns=['IsMale_'+str(i) for i in np.sort(X.IsMaleBucket.unique())])

X_ismale具有类型:

<2256308x3 sparse matrix of type '<class 'numpy.float64'>'
    with 2256308 stored elements in Compressed Sparse Row format>

错误如上所述。

我希望可以无误地转换为数据框,但无法获取。

1 个答案:

答案 0 :(得分:-1)

熊猫不能使用稀疏矩阵,而只能使用密集数据。您可以使用to_array将稀疏矩阵转换为密集数组。 – 9分钟前jdehesa

尽管当前版本为toarray,但使用to_array还是可以的。

谢谢。