【问题标题】:ValueError in onehotencodingonehotencoding 中的 ValueError
【发布时间】:2018-03-26 10:08:58
【问题描述】:

我无法对此列进行编码

Sex
male
female
female
female
male
male
male
male
female
female

from sklearn.preprocessing import LabelEncoder,OneHotEncoder
labelencoder=LabelEncoder()
X[:,2]=labelencoder.fit_transform(X[:,2])
ohe=OneHotEncoder(categorical_features=X[2])
ohe.fit_transform(X)

我收到了这个错误。

无法将字符串转换为浮点数:'male'

谁能帮我解决这个问题?

【问题讨论】:

  • 请在 X 中添加完整的错误堆栈跟踪以及一些示例数据。
  • 即使您指定了categorical_features,OneHotEncoder 仍会检查整个 X 是否为数字。
  • ' array = np.array(array, dtype=dtype, order=order, copy=copy) ValueError: could not convert string to float: 'Male''..这是完整的错误
  • @Anesh,你的目标是什么?要将 Sex 列编码为数字列或执行 One-Hot-Encoding 并最终得到两列:['male','female']?
  • 我无法对性别列进行标签编码。Like Sex=[0,1,0,0,1...]

标签: python-3.x scikit-learn one-hot-encoding


【解决方案1】:

演示:

In [6]: df
Out[6]:
      Sex
0    male
1  female
2  female
3  female
4    male
5    male
6    male
7    male
8  female
9  female

In [7]: le = LabelEncoder()

In [8]: df['Sex'] = le.fit_transform(df['Sex'])

In [9]: df
Out[9]:
   Sex
0    1
1    0
2    0
3    0
4    1
5    1
6    1
7    1
8    0
9    0

In [10]: df.dtypes
Out[10]:
Sex    int64
dtype: object

【讨论】:

  • @Anesh,很高兴我能帮上忙 :)
猜你喜欢
  • 2017-02-07
  • 2016-12-23
  • 2020-06-30
  • 2018-04-13
  • 2020-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-11
相关资源
最近更新 更多