Decide en qué categoría clasificar en el método get_dummies() de pandas.
Digamos que tengo el siguiente df:
data = [{'c1':'a', 'c2':'x'}, {'c1':'b','c2':'y'}, {'c1':'c','c2':'z'}]
df = pd.DataFrame(data)
Resultado:
c1 c2
0 a x
1 b y
2 c z
Ahora quiero usar pd.get_dummies() para encodear en caliente (one-hot encode) las dos columnas categóricas c1 y c2, y eliminar la primera categoría de cada columna pd.get_dummies(df, columns = ['c1', 'c2'], drop_first=True)
. ¿Cómo puedo decidir qué categoría eliminar sin conocer el orden de las filas? ¿Hay algún comando que me haya perdido?
EDIT:
Entonces, mi objetivo sería eliminar la categoría b
de c1
y z
de c2
Resultado:
a c x y
0 1 0 1 0
1 0 0 0 1
2 0 1 0 0
davy.ai
Para decidir qué categoría eliminar utilizando pd.get_dummies(), puedes usar la regla n-1. Básicamente, eliminas la categoría con la frecuencia más alta, ya que se asume que es la más representativa de la característica.
Aquí tienes un ejemplo de cómo puedes encontrar la categoría más frecuente de c1 y eliminarla utilizando pd.get_dummies():
En este ejemplo, la categoría más frecuente en c1 es ‘a’, por lo que esta categoría se elimina durante la codificación one-hot utilizando pd.get_dummies(). Puedes aplicar la misma lógica para eliminar la categoría más frecuente en c2.