Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

função para ler itens separados por ,

Oii pessoal! Sou nova aqui e não sei muito bem como perguntar o que preciso.

Tenho uma base de dados, dataframe, nesse modelo:

sexofaixa etariaesportes
femininoadultovolei, basquete
masculinoadultofutebol, tenis

preciso montar alguma função que leia a coluna de esportes e a transforme em:

sexofaixa etariaesportesvoleibasquetefuteboltenis
femininoadultovolei, basquete1100
masculinoadultofutebol, tenis0011

Sei que é algo simples, mas já tentei de diversas maneiras. Espero que alguém possa me ajudar, agradeço desde já :)

2 respostas
solução!

Oi Júlia! Eu resolvi este problema utilizando as funções split, explode, get_dummies, group_by e join. Segue o passo-a-passo:

  • Transformar os esportes em uma lista para que cada esporte vire uma linha Insira aqui a descrição dessa imagem para ajudar na acessibilidade
  • Usar a função pd.get_dummies para transformar os esportes em colunas com 1 ou 0 Insira aqui a descrição dessa imagem para ajudar na acessibilidade
  • Usar a função group_by para agrupar os dummies pelo índice original Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A função final ficou a seguinte:

def transformar(df):
    df_processada = df.copy()
    df_processada["esportes"] = df_processada["esportes"].str.split(',')
    df_processada = df_processada.explode('esportes')
    dummies = pd.get_dummies(df_processada["esportes"])
    dummies_somadas = dummies.groupby(dummies.index).sum()
    return df.join(dummies_somadas)

Para transformar, basta utilizar a função:

meu_df = transformar(df_original)

Muuuuito obrigada!