1
resposta

Criando variável a partir de uma condição.

Olá a todos.

Estou estudando python e pandas com um banco de dados no qual eu tenho as seguintes variáveis para a idade:

NU_IDADE_N = Correspondente ao número da idade

&

TP_IDADE = Correspondente ao tipo da idade, sendo: 1 - dias 2 - meses 3 - anos

NU_IDADE_NTP_IDADE
193
212
561
123

Eu gostaria de criar uma terceira variável, 'IDADEANOS', na qual se TP_IDADE != de 3 então IDADEANOS = 0

A idéia que eu tive era da seguinte forma:

dados["IDADEANOS"] = dados["NU_IDADE_N"] 

if dados["TP_IDADE"] != 3:
    dados["IDADEANOS"] ==0

Obviamente não funcionou e apesar de ser algo bem simples eu não encontrei nada na documentação que me auxilie com essa situação especificamente.

Então se alguém tiver uma solução serei muito grato.

Desde já agradeço pela atenção.

1 resposta

Boas Pedro! Tudo bem? Espero que sim.

Vou colocar o código que pra mim resolveu o que você deseja fazer e depois algumas considerações:

a partir do dataframe

nu_idade_ntp_idadeidade_em_anos
019319
12120
25610
312312

Vou usar a função pd.where(), na qual posso passar uma condição e também um valor para quando a condição não é alcançada:

dados['idade_em_anos']=dados.where(dados.tp_idade ==3, 0).nu_idade_n

que resulta em:

nu_idade_ntp_idadeidade_em_anos
019319
12120
25610
312312

É uma forma incomum e bastante não usual de trabalhar com idades, ou periodos de tempo essa que você está utilizando. Achei um pouco complexo compreender a lógica da idade estar dividida em 3 registros. Sugiro trabalhar no dataframe para que em cada linha haja todas as informações da idade de cada pessoa.

Além disso, o nome das colunas não é claro, sugiro colocar por extenso numero_da_idade ou simplesmente idade, e tipo_idade ao inves de tp_idade.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!