适用于任何类型数据集的一种热编码

数据挖掘 数据 python-3.x 一热编码
2021-09-18 02:52:26

如何为未知数据集进行一次热编码,该数据集可以迭代和检查数据集的 dytype 并通过检查列的唯一值的数量进行一次热编码,以及如何跟踪新的热编码数据与原始数据集?

1个回答

我建议使用类别编码器中的一个热编码包,并选择要使用pandas select dtypes的列。

import numpy as np
import pandas as pd     
from category_encoders.one_hot import OneHotEncoder

pd.options.display.float_format = '{:.2f}'.format # to make legible

# make some data
df = pd.DataFrame({'a': ['aa','bb','cc']*2,
                   'b': [True, False] * 3,
                   'c': [1.0, 2.0] * 3})


cols_encoding = df.select_dtypes(include='object').columns
ohe = OneHotEncoder(cols=cols_encoding)
encoded = ohe.fit_transform(df) 

请注意,您可以更改处理看不见的数据的方式

处理未知:str

选项是'error'、'return_nan'、'value'和'indicator'。默认值为“值”。警告:如果使用指示符,如果变换矩阵有未知类别,将添加一个额外的列。在某些情况下,这可能会导致尺寸发生意外变化。