Intercambiar valores en las columnas y filas en condiciones específicas [duplicar]
Tengo un siguiente marco de datos de pandas:

y quiero comprobar si el valor de la columna 'A start'
es negativo. Si es negativo que los valores de intercambio en la columna 'start'
y 'end'
y en las columnas 'A start'
y 'A end'
en la fila donde el
'A start'
tiene un valor negativo. Entonces el resultado debería ser:

Traté de resolverlo con where
pero no funcionó.
Estoy usando Python 3.8.
Muchas gracias por su ayuda.
Respuestas
Oye, mira esta publicación, es similar a tu pregunta, ¡podría ayudar! Si no, avíseme puede buscar otras opciones.
¿Cuál es la sintaxis correcta para intercambiar valores de columna para filas seleccionadas en un marco de datos de pandas usando solo una línea?
Aquí está el método más simple 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
Producción:
