Tukar nilai di kolom dan baris dalam kondisi tertentu [duplikat]

Dec 03 2020

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 wheretetapi tidak berhasil.

Saya menggunakan python 3.8.

Terima kasih banyak atas bantuan Anda.

Jawaban

AasthaSethia Dec 03 2020 at 20:37

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?

kirtipurohit Dec 03 2020 at 20:42

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: