如何解决为什么df [0]在连接后不返回第一列,以及如何使用ohe.categories_?
dfcars= pd.read_excel('cars.xlsx')
ohe=OneHotEncoder()
temp1= pd.DataFrame(ohe.fit_transform(dfcars[['Car Model']]).toarray())
ohe.categories_
dfcars = pd.concat([dfcars,temp1],axis=1)
尽管dfcars
已与temp
串联,但dfcars[0]
返回第4列,而dfcars[4]
显示错误。
为什么会这样?
此外,我到处搜索,但在categories_
中找不到OneHotEncoder
的用法,因此请告知其用途以及正确的语法。
我尝试了此操作,但是开始的列可能由于上述问题而消失了,并且所有值都被NaN填充。
df_drop=dfcars.drop(['Car Model'],axis=1)
df_drop = pd.DataFrame(data= df_drop,columns= ohe.categories_)
解决方法
这可能是由于dfcars [0]的语法为df [column_name_string],并且您具有名称为“ 0”的列,但没有名称为“ 4”的列。 您可以在连接之前重命名列:
temp1= pd.DataFrame(ohe.fit_transform(dfcars[['Car Model']]).toarray(),columns=['Category_0','Category_1','Category_2'])
dfcars = pd.concat([dfcars,temp1],axis=1)
对于categories_
的{{1}}属性,您可以访问sklearn docs。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。