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!