Olá, queria saber se é possível normalizar a coluna "Problemas_saude" separando os problemas em colunas com True e False ou Sim e Não para conter ou não o problema.
Olá, queria saber se é possível normalizar a coluna "Problemas_saude" separando os problemas em colunas com True e False ou Sim e Não para conter ou não o problema.
Oi, Amanda! tudo bem?
Dá pra fazer sim!
Uma das formas seria iterar sobre os problemas únicos para criar as novas colunas.
Ficaria assim o código:
import pandas as pd
# Transformando o dicionário em um DataFrame do pandas
df = pd.DataFrame(dados_dict["Pacientes"])
# Iterando sobre os problemas únicos para criar as novas colunas
for problema in set(problema for sublist in df["Problemas_saude"] for problema in sublist):
df[problema] = df["Problemas_saude"].apply(lambda x: problema in x)
# Removendo a coluna original "Problemas_saude"
df.drop(columns=["Problemas_saude"], inplace=True)
df
Vou explicar o código passo a passo:
pd.DataFrame()
para converter a lista de dicionários dados_dict["Pacientes"]
em um DataFrame Pandas:df = pd.DataFrame(dados_dict["Pacientes"])
for problema in set(problema for sublist in df["Problemas_saude"] for problema in sublist):
apply()
para aplicar uma função lambda a cada elemento da coluna "Problemas_saude". Esta função lambda verifica se o problema está presente na lista de problemas de um determinado paciente e retorna True ou False.df[problema] = df["Problemas_saude"].apply(lambda x: problema in x)
df.drop(columns=["Problemas_saude"], inplace=True)
Se precisar de mais detalhes ou tiver outras perguntas, estou à disposição para ajudar!
Bacana! Obrigada pela explicação, deu pra entender muito bem.