Troque os valores nas colunas e linhas sob condições específicas [duplicado]

Dec 03 2020

Eu tenho o seguinte dataframe do pandas:

e quero verificar se o valor da coluna 'A start'é negativo. Se negativo do que os valores de troca em coluna 'start'e 'end'e em colunas 'A start'e 'A end'na linha onde a

'A start'tem um valor negativo. Portanto, o resultado deve ser:

Tentei resolver com wheremas não funcionou.

Estou usando o python 3.8.

Muito obrigado por sua ajuda.

Respostas

AasthaSethia Dec 03 2020 at 20:37

Ei, olhe para este post é semelhante à sua pergunta, pode ajudar! Se não me avise podemos procurar outras opções.

Qual é a sintaxe correta para trocar valores de coluna por linhas selecionadas em um quadro de dados do pandas usando apenas uma linha?

kirtipurohit Dec 03 2020 at 20:42

Aqui está o método mais simples usando where


df = pd.DataFrame()
df['start']   = [1,5,7,2]
df['end']     = [4,6,8,9,]
df['A start'] = [234, -475, -765, 113]
df['A end']   = [-654, 312, 987, -553]


df[['A start','A end']] = df[['A end','A start']].where(df['A start'] < 0 , df[['A start','A end']].values)
df

Resultado: