【发布时间】:2019-11-04 21:38:06
【问题描述】:
我正在尝试使用 onehotencoder 来转换我的分类数据,但是,我被困在这一步:
X = transformer.fit_transform(X)
我不确定我错过了什么,但我对 python 不太熟悉,我感谢任何愿意提供帮助的人,谢谢!
这是数据集: Data.csv
我正在尝试转换国家列
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#import dataset
dataset = pd.read_csv("Data.csv")
X = dataset.iloc[:,:-1].values
Y = dataset.iloc[:,3].values
#Taking care of Missing data
from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')
imputer = imputer.fit(X[:,1:3])
X[:,1:3] = imputer.transform(X[:,1:3])
#Encoding Categorical data
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
from sklearn.compose import ColumnTransformer
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
transformer = ColumnTransformer([('one_hot_encoder', OneHotEncoder(), [0])],
remainder='passthrough')
X = transformer.fit_transform(X)
#X = np.array(transformer.fit_transform(X), dtype=np.float)
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
这是错误:
ValueError: all the input arrays must have same number of dimensions, but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)
【问题讨论】:
-
嘿@potatoCatz,你有解决方案吗?使用 OneHotEncoder.fit_transform 时,我的代码出现同样的错误。
标签: machine-learning