Поменять местами значения в столбцах и строках при определенных условиях [дубликат]
У меня есть следующий фреймворк pandas:

и я хочу проверить, является ли значение в столбце 'A start'
отрицательным. Если отрицательное, чем поменять местами значения в столбце 'start'
и 'end'
столбцах 'A start'
и 'A end'
в строке, где
'A start'
имеет отрицательное значение. Итак, результат должен быть:

Я пытался решить эту проблему, where
но это не сработало.
Я использую Python 3.8.
Большое спасибо за Вашу помощь.
Ответы
Посмотри на этот пост, он похож на твой вопрос, он может помочь! Если нет, дайте мне знать, можете поискать другие варианты.
Каков правильный синтаксис для обмена значениями столбцов для выбранных строк во фрейме данных pandas, используя только одну строку?
Вот простейший метод с использованием 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
Выход:
