Olá, Fernando!
Entendo a sua dúvida com o comportamento do parâmetro drop_first=True
no método get_dummies()
. Vamos esclarecer isso!
O parâmetro drop_first=True
é usado para evitar a multicolinearidade, que ocorre quando temos variáveis independentes altamente correlacionadas em nosso modelo. No caso de variáveis categóricas convertidas em binárias, se temos, por exemplo, três categorias (vermelho, azul e verde), podemos representar qualquer uma delas com apenas duas variáveis binárias.
Por exemplo, se temos 'vermelho' e 'verde' como 0, sabemos que a cor deve ser 'azul'. Da mesma forma, se 'verde' e 'azul' são 0, a cor deve ser 'vermelho'. Portanto, a informação da terceira variável é redundante e pode ser descartada, o que é exatamente o que drop_first=True
faz.
No seu exemplo, 'azul' e 'grande' foram as primeiras categorias em suas respectivas colunas e, portanto, foram descartadas quando drop_first=True
foi usado. Isso não significa que 'azul' e 'grande' não estão representados no dataframe. Eles estão implicitamente representados quando todas as outras colunas para aquela variável são 0.
Espero ter ajudado e bons estudos!