Поменять местами значения в столбцах и строках при определенных условиях [дубликат]

Dec 03 2020

У меня есть следующий фреймворк pandas:

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

'A start'имеет отрицательное значение. Итак, результат должен быть:

Я пытался решить эту проблему, whereно это не сработало.

Я использую Python 3.8.

Большое спасибо за Вашу помощь.

Ответы

AasthaSethia Dec 03 2020 at 20:37

Посмотри на этот пост, он похож на твой вопрос, он может помочь! Если нет, дайте мне знать, можете поискать другие варианты.

Каков правильный синтаксис для обмена значениями столбцов для выбранных строк во фрейме данных pandas, используя только одну строку?

kirtipurohit Dec 03 2020 at 20:42

Вот простейший метод с использованием 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

Выход: