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

Linda Hamilton
Lepaskan: 2024-10-28 20:58:02
asal
202 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
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