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
Susan Sarandonasal
2024-10-20 06:52:29822semak imbas

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>

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>

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!

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