pandas TypeError:不可哈希的类型:pd的'系列'.get_dummies

egdjgwm8  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(266)

我尝试在数据框架(Kaggle的House Regression)中的一些名义数据上使用pd.get_dummies。我将所有名义类别划分到一个列名列表中,'obj_nominal'
当我打电话

pd.get_dummies(df, columns=obj_nominal)

我收到错误:

TypeError: unhashable type: 'Series'.

到目前为止,我所做的唯一预处理是删除数据集中的空值。我也尝试过使用Sklearn OneHotEncoder,它也会产生同样的错误。
我还尝试使用以下内容创建一个单独的 Dataframe :

x = df.iloc[:, obj_nominal]

并在 Dataframe 上传递get_dummies:

pd.get_dummies(data = x)

但还是没找到。
数据可从https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data下载

aelbi1ox

aelbi1ox1#

以下内容似乎解决了该问题:
通过首先将每个列的数据类型更改为string,我消除了这个问题。

x = df.loc[:, obj_nominal]
x = x.astype(str)

但是,我并不完全确定这会完成什么,因为在转换为字符串之前,这些是相关列的数据类型:

df.loc[:, obj_nominal].dtypes

Street           object
Alley            object
LotConfig        object
LandContour      object
Neighborhood     object
Condition1       object
Condition2       object
BldgType         object
HouseStyle       object
RoofStyle        object
RoofMatl         object
Exterior1st      object
Exterior2nd      object
GarageType       object
MasVnrType       object
Foundation       object
Heating          object
CentralAir       object
Electrical       object
SaleType         object
SaleCondition    object

相关问题