有没有办法同时对字符串和整数应用单热编码? 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函数,但这两者都是隐式的(原始数据总是整数)而且效率不高(迭代所有列,这可能是非常大并且应用浪费的任务。 )。
有一种简单的方法吗?
由于
答案 0 :(得分:0)
看起来get_dummies
就是你想要的。这将采用任何列并将其转换为分类指标的轴。
http://pandas.pydata.org/pandas-docs/dev/generated/pandas.get_dummies.html