arrays - 如何将稀疏 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 数组转换为数据框?
解决方案
所以首先,将稀疏矩阵从 csr_matrix 转换为普通数组
X = X.toarray()
df = pd.DataFrame(X)
以上应该工作
推荐阅读
- pandas - 在熊猫中连接/附加许多数据帧
- css - 可以不使用绝对位置吗?
- python - 权限被 pip install --user -e /home/me/package/ 拒绝
- python - 你能修复这个错误吗'只有大小为 1 的数组可以转换为 Python 标量'
- javascript - 换页时平滑过渡
- android - 如何识别 Web 应用程序中的移动原生流量?
- php - 使用 jquery 和 salt 加密密码,然后在 php 中验证加盐密码哈希
- powerbi - 如何将当前年份和上一年放在标题上 - Power BI 相关问题
- android-studio - 如何从 Android Studio 同步中删除额外的 gradle 同步任务
- google-cloud-firestore - Firestore 规则和数据结构