Dalam Panda, anda boleh menghadapi situasi di mana anda perlu mencipta berbilang lajur baharu berdasarkan fungsi tersuai yang digunakan pada lajur sedia ada. Tugas itu mungkin kelihatan mudah, tetapi cabaran yang tidak dijangka boleh timbul disebabkan oleh jenis pulangan yang dijangkakan bagi fungsi tersebut.
Pada mulanya, anda mungkin cuba untuk menetapkan output fungsi terus kepada julat indeks dalam DataFrame menggunakan sintaks df.ix[: ,10:16] = df.textcol.map(extract_text_features). Walau bagaimanapun, pendekatan ini selalunya boleh mengakibatkan ralat disebabkan oleh jenis pemulangan yang tidak serasi bagi fungsi tersebut.
Satu penyelesaian yang berpotensi adalah untuk mengulang setiap baris DataFrame menggunakan df.iterrows( ). Kaedah ini membolehkan anda menggunakan fungsi pada setiap baris secara individu dan menangkap hasilnya sebagai tuple. Walau bagaimanapun, pendekatan ini boleh menjadi jauh lebih perlahan daripada pilihan lain.
Pendekatan yang lebih cekap dan fleksibel ialah menggunakan fungsi zip() bersama-sama dengan map() untuk mencipta lajur baharu. Fungsi zip() menggabungkan output fungsi ke dalam tuple, yang kemudiannya boleh dibongkar ke dalam lajur individu. Sebagai contoh, kod berikut menunjukkan cara membuat enam lajur baharu menggunakan kaedah zip():
<code class="python">df['p1'], df['p2'], df['p3'], df['p4'], df['p5'], df['p6'] = zip(*df['num'].map(powers))</code>
Kemas kini terkini kepada Panda telah memperkenalkan kaedah yang lebih mudah untuk menggunakan fungsi ke lajur dan mencipta lajur baharu. Sebagai contoh, kaedah df.apply() membolehkan anda menentukan format output (DataFrame, Siri atau senarai) dan mengendalikan parameter tambahan. Selain itu, kaedah df.assign() membolehkan anda membuat lajur baharu secara langsung tanpa memberikan output secara eksplisit. Kaedah baharu ini memberikan lebih fleksibiliti dan kecekapan dalam mencipta berbilang lajur baharu berdasarkan fungsi.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Berbilang Lajur Baharu dengan Cekap daripada Fungsi dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!