ValueError:所有输入数组在onehotencoder上的维数必须相同

我正在尝试使用onehotencoder转换我的分类数据,但是,我被困在这一步:

X =变压器.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)
linqiang624 回答:ValueError:所有输入数组在onehotencoder上的维数必须相同

检查您的csv文件,如果它看起来完全像这样:

{{1}}

尽管sklearn发出了一些警告,我仍然运行了您的代码,但没有收到任何错误

本文链接:https://www.f2er.com/3169183.html

大家都在问