Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] criar coluna com duas condições

df_final['Valor_teste1'] = df_final['Valor'] >= df_final['Valor_3_menor']
df_final['Valor_teste2'] = df_final['Valor'] <= df_final['Valor_3_maior']
df_final['Valor_teste'] = df_final['Valor_teste2'] = df_final['Valor_teste1']
df_final['teste1'] = df_final['Data_pagamento'] <= df_final['Data_contabil']
df_final['teste2'] = df_final['Data_adesao'] <= df_final['Data_pagamento']

eu crio estas quatro colunas para depois ter o meu retorno desejado, a pergunta é se teria como realizar duas condições para criar uma coluna exemplo, Valor_teste1 = df_final['Valor'] >= df_final['Valor_3_menor'] 'e ' df_final['Valor'] <= df_final['Valor_3_maior'] a mesma coisa para o teste1

1 resposta
solução!

Tem sim, e é bastante parecido com o que você já fez:

df_final['Valor_teste1'] = (df_final['Valor'] >= df_final['Valor_3_menor']) & (df_final['Valor'] <= df_final['Valor_3_maior'])

Como cada uma dessas comparações é uma Series (uma coleção de valores em vez de um único valor), precisamos usar operadores lógicos que comparam elemento a elemento:


and -> &
or  -> |
not -> ~

Além disso, ao usar esses operadores é recomendado colocar parenteses para explicitar a operação que você deseja fazer, se não pode ficar ambíguo e não te dar o resultado desejado. Por exemplo:


a >= b & a <= c

# geralmente é interpretado pelo python como:
a >= (b & a) <= c      # executa o '&' primeiro e dá erro

# quando o que queremos na verdade é:
(a >= b) & (a <= c)    # executa as comparações primeiro e depois o '&'

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software