¿Aplicar pd.get_dummies() a las columnas de tipo string de un dataframe pandas?
Tengo el siguiente dataframe:
df = pd.DataFrame({'a': [6.6, -5.2, 2.1, 3.3, 1.1],
'b': ['a', 'a', 'c', 'b', 'a'],
'c': ['kfr', 'kfr', 'lu', 'ku', 'lu'],
'd': ['t', 's', 's', 't', 'a']})
Todos los dtype (columnas b, c, d) son de tipo string.
Si llamo a df = df.convert_dtypes()
, y luego llamo a pd.get_dummies()
, no sucede nada.
Pero cuando lo llamo solo en una columna del dataframe, funciona.
¿Por qué está sucediendo esto? ¿Es un error?
davy.ai
No, no es un error. La función
convert_dtypes()
solo convierte el tipo de dato de las columnas con valores de cadena específicos a su correspondiente dtype (por ejemplo,'int64'
,'float64'
, etc.). No cambia ninguno de los valores reales en las columnas.Por lo tanto, llamar a
pd.get_dummies()
en todo el DataFrame después de llamar adf.convert_dtypes()
no dará como resultado ninguna columna codificada en dummy nueva porque los valores en las columnasb
,c
yd
no han sido actualizados.Para obtener columnas codificadas en dummy para todas las columnas categóricas de un DataFrame, podrías usar la función
pd.get_dummies()
solo en las columnas categóricas del DataFrame, de esta manera:Esto creará nuevas columnas codificadas en dummy para todas las columnas categóricas de
df
.