【发布时间】:2018-01-31 08:46:11
【问题描述】:
这是我从教程中得到的
# Data Preprocessing
# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# Importing the dataset
dataset = pd.read_csv('Data.csv')
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values
# Taking care of missing data
from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = 'NaN', strategy = 'mean', axis = 0)
imputer = imputer.fit(X[:, 1:3])
X[:, 1:3] = imputer.transform(X[:, 1:3])
# Encoding categorical data
# Encoding the Independent Variable
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
# Encoding the Dependent Variable
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
这是带有编码虚拟变量的 X 矩阵
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.400000000000000000e+01 7.200000000000000000e+04
0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 2.700000000000000000e+01 4.800000000000000000e+04
0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 3.000000000000000000e+01 5.400000000000000000e+04
0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 3.800000000000000000e+01 6.100000000000000000e+04
0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 4.000000000000000000e+01 6.377777777777778101e+04
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.500000000000000000e+01 5.800000000000000000e+04
0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 3.877777777777777857e+01 5.200000000000000000e+04
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 4.800000000000000000e+01 7.900000000000000000e+04
0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 5.000000000000000000e+01 8.300000000000000000e+04
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 3.700000000000000000e+01 6.700000000000000000e+04
问题是没有列标签。我试过了
something = pd.get_dummies(X)
但我得到以下异常
Exception: Data must be 1-dimensional
【问题讨论】:
标签: python pandas scikit-learn one-hot-encoding