Saya memiliki DataFrame sederhana seperti berikut:
Saya ingin memilih semua nilai dari kolom 'Musim Pertama' dan mengganti nilai yang lebih dari tahun 1990 dengan 1. Dalam contoh ini, hanya Baltimore Ravens yang tahun 1996 akan diganti dengan 1 (menjaga data lainnya tetap utuh).
Saya telah menggunakan yang berikut ini:
df.loc[(df['First Season'] > 1990)] = 1
Tapi, ini mengganti semua nilai di baris itu dengan 1, dan bukan hanya nilai di kolom 'Musim Pertama'.
Bagaimana saya bisa mengganti hanya nilai dari kolom itu?
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()
. Apa yang saya coba lakukan pada dasarnyadf['A'] = np.where(df['B'] in some_values, df['A']*2, df['A]
. Apakah ada yang punya ide tentang ini?aneh bahwa tidak ada yang memiliki jawaban ini, satu-satunya bagian yang hilang dari kode Anda adalah ['Musim Pertama'] tepat setelah df dan cukup hapus tanda kurung keriting di dalamnya.
sumber
untuk kondisi tunggal, yaitu.
( 'employrate'] > 70 )
Gunakan ini:
oleh karena itu sintaks di sini adalah:
Untuk berbagai kondisi yaitu.
(df['employrate'] <=55) & (df['employrate'] > 50)
Gunakan ini:
oleh karena itu sintaks di sini adalah:
sumber
Penjelasan:
df.loc
mengambil dua argumen, 'indeks baris' dan 'indeks kolom'. Kami memeriksa apakah nilainya lebih besar dari 27 dari setiap nilai baris, di bawah kolom "Musim pertama" dan kemudian kami menggantinya dengan 1.sumber