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.