1
resposta

Função de Transformar dados

def transforma_dados(*requisitos):
    for dados, coluna, dicionario, col_nova in requisitos:
        temp = pd.Categorical(
            dados[coluna],
            categories=dicionario.keys(),
            ordered=True
        )
        
        dados[col_nova] = temp.map(dicionario, na_action=None)
    
    return dados
    
    transforma_dados((dados, "Cor", cor, "cor_cat"), (dados, "Anos.de.Estudo", anos_de_estudo, "anos_de_estudos_cat"), (dados, "Sexo", sexo, "sexo_cat"))
1 resposta

Oi, William! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você estruturou bem a função transforma_dados. Continue assim!

Uma dica interessante para o futuro é utilizar o metodo assign() do pandas para encadear transformacoes. Veja este exemplo:


import pandas as pd

df = pd.DataFrame({
    'cor': ['azul', 'verde', 'vermelho']
})

mapa = {'azul': 1, 'verde': 2, 'vermelho': 3}

df = df.assign(cor_num = df['cor'].map(mapa))

print(df)

Esse código cria uma nova coluna baseada em um mapeamento, deixando o fluxo mais organizado e legivel.

Para saber mais:

Sugestão de conteúdo:

DOCUMENTAÇÃO
assign()
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!