Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Membuat Lajur Bersyarat If-Else-Else dalam Panda?

Bagaimana untuk Membuat Lajur Bersyarat If-Else-Else dalam Panda?

Mary-Kate Olsen
Lepaskan: 2024-10-20 06:55:02
asal
620 orang telah melayarinya

How to Create an If-Else-Else Conditional Column in Pandas?

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
Salin selepas log masuk

Kami ingin mencipta lajur 'C' baharu yang mengikut syarat ini:

  • Jika A == B, tetapkan C kepada 0
  • Jika A > B, tetapkan C kepada 1
  • Jika A < B, tetapkan C kepada -1

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan