Pandas.get_dummies返回到两列(_Y 和 _N)而不是一列



我正在尝试使用sklearn来训练基于我的数据集的决策树。

当我尝试将数据切成(结果:Y,预测变量:X(时,结果(我的标签(在True/False

#data slicing 
X = df.values[:,3:27] #X are the sets of predicting variable, dropping unique_id and student name here
Y = df.values[:,'OffTask'] #Y is our predicted value (outcome), it is in the 3rd column 

这就是我的做法,但我不知道这是否是正确的方法:

#convert the label "OffTask" to dummy 
df1 = pd.get_dummies(df,columns=["OffTask"])
df1
我的

麻烦是数据集 df1 将我的标签Offtask返回给OffTask_NOffTask_Y

有人知道如何解决它吗?

get_dummies用于

将名义字符串值转换为整数。它返回与列中可用的唯一字符串值一样多的列,例如:

df={'color':['red','green','blue'],'price':[1200,3000,2500]}
my_df=pd.DataFrame(df)
pd.get_dummies(my_df)

在您的情况下,您可以删除第一个值,只要值为 null,就可以认为它将是第一个值

您可以通过

设置drop_first=True使pd.get_dummies只返回一列

y = pd.get_dummies(df,columns=["OffTask"], drop_first=True)

但这不是将标签转换为二进制文件的推荐方法。我建议为此目的使用标签二进制器。

例:

from sklearn import preprocessing
lb = preprocessing.LabelBinarizer()
lb.fit_transform(pd.DataFrame({'OffTask':['yes', 'no', 'no', 'yes']}))
#
array([[1],
       [0],
       [0],
       [1]])

相关内容

  • 没有找到相关文章

最新更新