我有一个简单的代码,可以将分类数据转换为 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/