Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Mencapai Penciptaan Lajur Bersyarat: Meneroka If-Elif-Else dalam Pandas DataFrame?

Cara Mencapai Penciptaan Lajur Bersyarat: Meneroka If-Elif-Else dalam Pandas DataFrame?

Susan Sarandon
Lepaskan: 2024-10-20 06:52:29
asal
819 orang telah melayarinya

How to Achieve Conditional Column Creation: Exploring If-Elif-Else in Pandas DataFrame?

Membuat Lajur Bersyarat: If-Elif-Else dalam Panda

Masalah yang diberikan meminta lajur baharu ditambahkan pada DataFrame berdasarkan satu siri kriteria bersyarat. Cabarannya terletak pada melaksanakan syarat ini sambil mengekalkan kecekapan dan kebolehbacaan kod.

Penyelesaian Menggunakan Aplikasi Fungsi

Satu pendekatan melibatkan penciptaan fungsi yang memetakan setiap baris kepada hasil yang diingini berdasarkan syarat:

<code class="python">def f(row):
    if row['A'] == row['B']:
        return 0
    elif row['A'] > row['B']:
        return 1
    else:
        return -1

df['C'] = df.apply(f, axis=1)</code>
Salin selepas log masuk

Kaedah ini boleh dibaca dan mudah dilaksanakan, tetapi ia tidak divektorkan dan mungkin membawa kepada isu prestasi dengan set data yang besar.

Penyelesaian Vektor

Untuk kecekapan, pendekatan tervektor menggunakan fungsi np.where NumPy disyorkan:

<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

Operasi ini melaksanakan elemen pemilihan bersyarat pada DataFrame, menghasilkan lajur baharu dengan nilai yang dikehendaki.

Pendekatan vektor ini memberikan faedah prestasi yang ketara berbanding kaedah berasaskan fungsi. Ia juga membolehkan pelaksanaan kriteria bersyarat yang lebih ringkas dan boleh dibaca.

Atas ialah kandungan terperinci Cara Mencapai Penciptaan Lajur Bersyarat: Meneroka If-Elif-Else dalam Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber: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