2
respostas

Criar nova coluna a partir de uma coluna que é um dicionario

No dataset do curso, data/db.csv, gostaria de criar features com os acessórios do veículo. Por exemplo, o Jetta Variant tem os acessórios ['Central multimídia', 'Teto panorâmico'...]. Quero criar uma feature para cada um dos acessórios e preencher com zero ou um, sendo que o zero é para quando o veículo não tem o acessório e um para quando ele tem.

Não consegui fazer isto. Como faço?

2 respostas

Olá Herica,

O pandas já tem a função get_dummies que faz exatamente isso que você quer, mas nesse caso como temos uma lista de valores fica um pouco mais complicado. Além disso não temos exatamente uma lista, e sim uma string representando uma lista.

# Transformando de string em lista
df['Acessórios'] = df['Acessórios'].apply(lambda x: eval(x))

# Aplica a função do pandas que divide as categorias
pd.get_dummies(
    # Transforma as listas de acessórios em um DataFrame para possibilitar a divisão pelo get_dummies
    df['Acessórios'].apply(pd.Series).stack()
).sum(level=0)

Essa segunda parte do código eu fiz baseado no código desse link

Espero ter ajudado, qualquer dúvida é só falar!

Ajudou. Obrigada.