我正在尝试对我拥有的数据框中的一些标称数据使用
pd.get_dummies
(来自 Kaggle 的 House 回归)。我将所有名义类别分成列名称列表,'obj_nominal'
。
当我打电话时
pd.get_dummies(df, columns=obj_nominal)
我收到错误:
TypeError: unhashable type: 'Series'.
到目前为止我所做的唯一预处理是删除数据集中的空值。我也尝试过使用 Sklearn
OneHotEncoder
,它会产生相同的错误。
我还尝试使用以下方法制作单独的数据框:
x = df.iloc[:, obj_nominal]
并在数据帧上传递 get_dummies :
pd.get_dummies(data = x)
但还是没有运气...
数据可在https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data
下载看来以下解决了问题:
首先将每列的数据类型更改为字符串,我解决了这个问题。
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