TypeError: tipo no hashable: ‘Series’ para pd.get_dummies
Estoy intentando usar pd.get_dummies
en algunos de los datos nominales en un dataframe que tengo (House Regression de Kaggle). He separado todas las categorías nominales en una lista de nombres de columnas, 'obj_nominal'
.
Cuando llamo a
pd.get_dummies(df, columns=obj_nominal)
Obtengo el error:
TypeError: unhashable type: 'Series'.
La única preprocesamiento que he hecho hasta ahora es eliminar los valores nulos en el conjunto de datos. También he intentado usar OneHotEncoder
de Sklearn, y crea el mismo error.
También he intentado crear un dataframe separado usando:
x = df.iloc[:, obj_nominal]
y aplicar get_dummies
en el dataframe:
pd.get_dummies(data = x)
pero aún sin suerte…
Los datos se pueden descargar en https://www.kaggle.com/c/house-prices-advanced-regression-techniques/data.
davy.ai
Parece que estás experimentando un TypeError con la función
pd.get_dummies
y no estás seguro de cómo proceder. El mensaje de error que estás recibiendo,TypeError: unhashable type: 'Series'
, sugiere que la funciónpd.get_dummies
no puede aceptar uno de los argumentos que le estás pasando.Es posible que uno o más nombres de columna en la lista
obj_nominal
sean inválidos o estén en un formato inesperado. Puede que quieras verificar que esta lista solo contenga los nombres de las columnas a las que deseas aplicar la codificación, y que estos nombres de columna estén escritos correctamente y no contengan caracteres inesperados.Una aproximación que puedes intentar es usar la función
pd.Categorical
para convertir las columnas categóricas a un tipo de dato categórico antes de aplicarpd.get_dummies
. Luego puedes pasar las columnas categóricas directamente apd.get_dummies
. Aquí tienes un ejemplo:Alternativamente, puedes intentar especificar el argumento
dtype
al generar la listaobj_nominal
para marcar explícitamente estas columnas como categóricas. Aquí tienes un ejemplo:Esperemos que una de estas aproximaciones resuelva el TypeError que estás encontrando.