Label Encoder不会创建虚拟变量

时间:2018-03-08 17:57:13

标签: python deep-learning spyder

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd 

dataset=pd.read_csv('Churn_Modelling.csv')
X=dataset.iloc[:, 3:13]
Y=dataset.iloc[:, 13]

from sklearn.preprocessing import LabelEncoder
label_en1=LabelEncoder()
X.values[:, 1]=label_en1.fit_transform(X.values[:, 1])
label_en2=LabelEncoder()
X.values[:, 2]=label_en2.fit_transform(X.values[:, 2])

我尝试创建虚拟变量,但它没有发生。我在编码部分使用X.values因为我拥有的Spyder版本不支持对象数组所以让X和Y成为数据帧。我添加了.values,因为它的数据帧不支持切片术语。我哪里可能出错了? 我之前创建了一个类似的程序来创建虚拟变量,然后就可以了。我不明白为什么不会发生这种情况。

1 个答案:

答案 0 :(得分:0)

编辑:

你可以传递一片切片吗?像这样:

X.iloc[:, 1] = label_en1.fit_transform(X.iloc[:, 1])

您基本上会将数据帧修剪为看似数组的内容

请尝试直接访问功能/列名称,而不是访问X.values

X['col_name'] = label_en1.fit_transform(X['col_name'])