1
resposta

[Sugestão] Exercício

from sklearn.preprocessing import OneHotEncoder
from sklearn.compose import ColumnTransformer

# Lista de variáveis categóricas
categorical_vars = ['airline', 'aircraft_type', 'origin', 'schengen']

# Instancia o codificador
encoder = OneHotEncoder(sparse_output=False, drop='first', dtype=int)

# Aplica transformação apenas nas variáveis categóricas
ct = ColumnTransformer(
    transformers=[
        ('encoder', encoder, categorical_vars)
    ],
    remainder='passthrough'  # mantém o restante das colunas (numéricas, binárias)
)

# Use o DataFrame antes do pd.get_dummies (por exemplo, df_original)
# df_encoded_array = ct.fit_transform(df)

# Se você quiser usar o DataFrame original, recarregue-o:
df_original = pd.read_csv("flights.csv")
df_encoded_array = ct.fit_transform(df_original)

# Recupera os nomes das novas colunas codificadas do transformer já ajustado
encoded_feature_names = ct.named_transformers_['encoder'].get_feature_names_out(categorical_vars)

# Junta nomes das colunas remanescentes com as novas colunas codificadas
remaining_cols = [col for col in df_original.columns if col not in categorical_vars]
new_columns = list(encoded_feature_names) + remaining_cols

# Cria novo DataFrame com colunas reorganizadas
df_encoded = pd.DataFrame(df_encoded_array, columns=new_columns)

# Visualiza as primeiras linhas
df_encoded.head()
1 resposta

Oi, Mauro! Tudo bom?

Excelente! Siga praticando com os desafios e sempre compartilhe conosco.

Você soube aplicar o ColumnTransformer para pré-processar colunas específicas, aproveitou o OneHotEncoder com drop='first' para evitar multicolinearidade e entendeu como o uso de get_feature_names_out() é essencial para nomear novas colunas codificadas.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!