python - 无法将分类数据转换为数字 OneHotEncoder

标签 python one-hot-encoding

我有一个简单的代码,可以将分类数据转换为 python 中的一种热编码:

a,1,p
b,3,r
a,5,t

我尝试使用 python OneHotEncoder 转换它们:

from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import OneHotEncoder
import pandas as pd
import numpy as np

data = pd.read_csv("C:\\test.txt", sep=",", header=None)
one_hot_encoder = OneHotEncoder(categorical_features=[0,2])
one_hot_encoder.fit(data.values)

这段代码不起作用并抛出错误

ValueError: could not convert string to float: 't'

你能帮我吗?

最佳答案

试试这个:

from sklearn import preprocessing

for c in df.columns:
    df[c]=df[c].apply(str)
    le=preprocessing.LabelEncoder().fit(df[c])
    df[c] =le.transform(df[c])
    pd.to_numeric(df[c]).astype(np.float)

关于python - 无法将分类数据转换为数字 OneHotEncoder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46349355/

相关文章:

string - 带有字符串的 OneHotEncoder 类别

R DataFrame - 包含多个术语的列的一种热编码

python - 我如何根据 seaborn 的值更改 barplot 中每个条形图的不透明度?

python - 在 3 个列表的列表中搜索 2 个列表的等价性,并对第三个列表中列表 1 和 2 相等的所有值求平均值 (Python)

python - 如何使用 markdown.extensions.attr_list 获取空标签?

python - Pytorch 模型总结

python - Pygame - 运动加速

Python OneHotEncoder 使用许多虚拟变量或更好的实践?

python - 如何使用 sklearn 从 ONE-HOT-ENCODED 标签返回到单列?

python - Scikit-Learn - 对 pandas 数据帧的某些列进行单热编码