【发布时间】:2022-01-07 05:51:22
【问题描述】:
我正在尝试在我拥有的数据框中的一些标称数据上使用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下载
【问题讨论】:
-
您能否添加一个示例数据框(仅几行)?见stackoverflow.com/questions/20109391/…
-
也许试试:
obj_nominal = df.columns[[pd.api.types.is_string_dtype(df[column]) for column in df.columns]]看起来你的一个列是一系列系列。 -
@Shaido,很好的链接,但我的数据框有 79 个特征。您对此有何建议?即使只有几行也会看起来有点……铿锵有力。另外,我不确定哪一列甚至导致了问题。同时,我将发布包含数据集的竞赛链接。
-
@shuaf98:您可以删除列,直到找到导致问题的一个或多个。我猜不是所有的列都与问题相关。
标签: pandas machine-learning scikit-learn typeerror one-hot-encoding