0
respostas

Erros em 3 formas de resolver

https://cursos.alura.com.br/forum/topico-criacao-de-variavel-condicionada-a-outras-204266

Tentei resolver a duvida acima de tres formas possíveis(todas retornam erros).

Com expressions:

bd = [-1*(bd.Valores) if bd.R_D == 'D' else bd.Valores]

Com funções

def muda_sinal():
   if (bd.R_D == 'D'):
      (-1)*(bd.Valores)
   else:
      bd.Valores
bd['R_D'] = bd['R_D'].apply(muda_sinal)
bd

Com lambda

bd['Valores'] = bd['Valores'].apply(lambda x: -1*(x) if bd['R_D']=='D' else x)
bd

Agora, um comentário sobre a solução que foi dada:

import numpy as np

dataframe['Valores_2'] = np.where(dataframe['R_D']=='R', dataframe['Valores'], dataframe['Valores']*-1)
dataframe

Nâo seria melhor fazer -dataframe['Valores'] ao invés de dataframe['Valores']*-1 ?

Gostaria de uma explicação o mais simples possivel, pois não sei onde estou errando e sou iniciante. Grato.