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,因为它的数据帧不支持切片术语。我哪里可能出错了? 我之前创建了一个类似的程序来创建虚拟变量,然后就可以了。我不明白为什么不会发生这种情况。
答案 0 :(得分:0)
你可以传递一片切片吗?像这样:
X.iloc[:, 1] = label_en1.fit_transform(X.iloc[:, 1])
您基本上会将数据帧修剪为看似数组的内容
请尝试直接访问功能/列名称,而不是访问X.values
:
X['col_name'] = label_en1.fit_transform(X['col_name'])