以最快的方式将一键编码的功能保存到Pandas DataFrame中

姆卡拉

我有一个带有所有功能和标签的Pandas DataFrame。我的功能之一是分类,需要进行一次热编码。

该功能是整数,并且只能包含的值 0 to 4

要将这些数组保存回我的DataFrame中,请使用以下代码

# enc is my OneHotEncoder object
df['mycol'] = df['mycol'].map(lambda x: enc.transform(x).toarray())

我的DataFrame有超过一百万行,因此上面的代码要花一些时间。是否有更快的方法将数组分配给DataFrame单元?因为我只有5个类别,所以我不需要调用该transform()函数一百万次。

我已经尝试过类似的东西

num_categories = 5
i = 0
while (i<num_categories):
    df.loc[df['mycol'] == i, 'mycol'] = enc.transform(i).toarray()
    i += 1

这产生这个错误

ValueError: Must have equal len keys and value when setting with an ndarray
裂解酶

您可以使用pd.get_dummies

>>> s
0    a
1    b
2    c
3    a
dtype: object

>>> pd.get_dummies(s)
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0

或者:

>>> from sklearn.preprocessing import OneHotEncoder

>>> enc = OneHotEncoder()
>>> a = np.array([1, 1, 3, 2, 2]).reshape(-1, 1)
>>> a
array([[1],
       [1],
       [3],
       [2],
       [2]]

>>> one_hot = enc.fit_transform(a)
>>> one_hot.toarray()
array([[ 1.,  0.,  0.],
       [ 1.,  0.,  0.],
       [ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 0.,  1.,  0.]])

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Pandas Dataframe:如何将一列拆分为多个一键编码的列

在pyspark中聚合一键编码功能

使用基于列的唯一键将pandas DataFrame融合到字典中

将以逗号分隔的字符串的pandas DataFrame列转换为一键编码

将多个Pandas DataFrame保存到单个Excel文件中

如何将 API 数据保存到 Pandas DataFrame 中?

将抓取结果保存到 Pandas Dataframe 中

Scikit学习中的一键式编码仅适用于部分DataFrame

将具有唯一键的字典添加到没有唯一键的DataFrame中

将唯一键保存为任何集合中javascript中的对象

反转XGBoost中的一键编码标签?

重构熊猫中的数据以进行一键编码?

如何一键将数据正确保存在多个片段中?

将Pandas DataFrame保存到Django模型

在 Inkscape 中设置一键粘贴快捷方式

将Spark Dataframe中的每一行保存到不同的文件中

如何将数据框列的分类值转换为sckikit-learn中的一键编码列?

将功能应用于DataFrame列中的内容并将其保存到另一个中的最佳方法

将Pyspark Dataframe保存到没有标题的csv中

将数据保存到Spark中后,DataFrame变为空

将DataFrame保存到Spark中的TFRecords时出错

如何将pandas DataFrame压缩成具有唯一键和列出值的字典?

将字典保存到 Pandas 数据框中,键为列并合并索引

R解析具有JSON数组的dataframe列并转换为一键编码

在 Pyspark 中迭代保存到新的 DataFrame

Ionic 3,Firebase将值保存在同一键下的两个数据库中

解码Pandas中的一键热数据帧

在Pandas Dataframe中回收

在pandas中扩展dataFrame