scikit-learn - 同时向量化整数和字符串功能

时间:2015-03-10 16:58:19

标签: pandas scikit-learn

有没有办法同时对字符串和整数应用单热编码? DictVectorizer用于字符串,OneHotEncoder用于整数。是否有某种结合它们(将所有特征值视为分类,无论其类型如何)?

例如:我有一个pandas DataFrame,有些列是整数,有些是字符串:

   >>> df
       a  b  c  d
    0  2  0  w  K
    1  0  1  f  K
    2  1  2  y  L
    3  0  0  f  M

所有列实际上都是分类。其中一些是整数没有意义。 现在,如果我使用这样的DictVectorizer:

vectorizer = DictVectorizer(sparse=False)
df_dict = df.T.to_dict().values()
vectorizer.fit_transform(df_dict)

我为列'c'和'd'得到一个很好的大矩阵,但'a'和'b'中的值保持完全相同。我需要他们来做同样的动作。 一种选择当然是在'a'和'b'上应用str函数,但这两者都是隐式的(原始数据总是整数)而且效率不高(迭代所有列,这可能是非常大并且应用浪费的任务。 )。

有一种简单的方法吗?

由于

1 个答案:

答案 0 :(得分:0)

看起来get_dummies就是你想要的。这将采用任何列并将其转换为分类指标的轴。

http://pandas.pydata.org/pandas-docs/dev/generated/pandas.get_dummies.html