Tukar nilai di kolom dan baris dalam kondisi tertentu [duplikat]
Saya memiliki kerangka data pandas berikut:

dan saya ingin memeriksa apakah nilai di kolom 'A start'
itu negatif. Jika negatif dari nilai swap di kolom 'start'
dan 'end'
dan di kolom 'A start'
dan 'A end'
di baris tempat
'A start'
memiliki nilai negatif. Jadi hasilnya seharusnya:

Saya mencoba mengatasinya where
tetapi tidak berhasil.
Saya menggunakan python 3.8.
Terima kasih banyak atas bantuan Anda.
Jawaban
Hei lihat posting ini, ini mirip dengan pertanyaan Anda, mungkin bisa membantu! Jika tidak beri tahu saya bisa mencari opsi lain.
Apa sintaks yang benar untuk menukar nilai kolom untuk baris yang dipilih dalam bingkai data panda hanya dengan menggunakan satu baris?
Inilah metode paling sederhana menggunakan 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
Keluaran:
