Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Berbilang Lajur Baharu dengan Cekap daripada Fungsi dalam Panda?

Bagaimana untuk Mencipta Berbilang Lajur Baharu dengan Cekap daripada Fungsi dalam Panda?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 20:58:02105semak imbas

How to Efficiently Create Multiple New Columns from a Function in Pandas?

Mencipta Berbilang Lajur Baharu daripada Fungsi Menggunakan Panda

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.

Pendekatan Asal: Menetapkan kepada Julat Indeks

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.

Penyelesaian Boleh Lelar

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.

Menggunakan zip()

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>

Kaedah Bingkai Data Yang Diperbaiki

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!

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