Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Membuat Lajur Bersyarat If-Else-Else dalam Panda?
Membuat Lajur Bersyarat If-Else-Else dalam Panda
Apabila bekerja dengan data, selalunya perlu membuat lajur baharu berdasarkan khusus syarat. Pandas menyediakan sintaks yang memudahkan proses ini, membolehkan anda mentakrifkan keadaan if-elif-else dalam satu langkah.
Untuk menggambarkan perkara ini, mari kita pertimbangkan DataFrame berikut:
A B a 2 2 b 3 1 c 1 3
Kami ingin mencipta lajur 'C' baharu yang mengikut syarat ini:
Menggunakan Fungsi Tersuai
Satu pendekatan ialah mentakrifkan fungsi tersuai yang menilai syarat ini untuk setiap baris:
<code class="python">def my_function(row): if row['A'] == row['B']: return 0 elif row['A'] > row['B']: return 1 else: return -1<p>Kaedah apply() kemudiannya boleh digunakan untuk menggunakan fungsi ini pada setiap baris DataFrame, mewujudkan lajur 'C':</p> <pre class="brush:php;toolbar:false"><code class="python">df['C'] = df.apply(my_function, axis=1)</code>
Pendekatan Vektor
Untuk penyelesaian vektor yang lebih cekap, kita boleh menggunakan fungsi np.where NumPy bersama-sama dengan pengindeksan logik panda:
<code class="python">df['C'] = np.where( df['A'] == df['B'], 0, np.where( df['A'] > df['B'], 1, -1))</code>
Ini menghapuskan keperluan untuk fungsi tersuai, mengakibatkan penyelesaian yang lebih pantas dan lebih optimum.
DataFrame yang terhasil dengan lajur 'C':
A B C a 2 2 0 b 3 1 1 c 1 3 -1
Atas ialah kandungan terperinci Bagaimana untuk Membuat Lajur Bersyarat If-Else-Else dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!