2
respostas

Problema com Dataframe e dicionários

Bom dia. Estou preso em um problema a mais ou menos uma semana e gostaria de saber se alguém pode me ajudar.

Estou com um dataset e em uma das colunas tenho um dicionário.

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeMeu problema é o seguinte: Gostaria de criar uma coluna score que representa a soma dos valores que estão presentes no dicionário (coluna competences).

Já tentei de várias formas diferentes e o mais próximo que consegui foi criar a coluna e gravar o somatório do último registro da tabela (conforme código abaixo)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

O resultado do código rodado:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Ou seja, ele pegou a soma do último registro e gravou em todas as linhas.

Se alguém puder ajudar, agradeço imensamente.

2 respostas

Oi Anderson, vc pode resolver aplicando uma função lambda para cada uma das linhas existentes na coluna competences.

# aplica a somatoria dos valores do dicionario existente em 
# cada linha no seu dataframe chamado 'dataset'
# e coloca o resultado na nova coluna 'score'
dataset['score'] = dataset.competences.apply(lambda x: sum(x.values()))

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Excelente ajuda. Deu certo! Obrigado Gil.

Preciso estudar lambda functions.

Valeu mesmo.