Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mencipta Berbilang Lajur dengan Cekap dalam Pandas DataFrame?

Bagaimana untuk Mencipta Berbilang Lajur dengan Cekap dalam Pandas DataFrame?

Susan Sarandon
Lepaskan: 2024-10-29 04:24:29
asal
1070 orang telah melayarinya

 How to Efficiently Create Multiple Columns in a Pandas DataFrame?

Mencipta Berbilang Lajur dengan Pandai dengan Cekap

Menggunakan fungsi pada lajur panda untuk menjana berbilang lajur baharu boleh menjadi tugas biasa. Walau bagaimanapun, mencari pendekatan yang betul untuk memastikan tugasan yang cekap dan betul boleh menjadi mencabar.

Dalam versi terdahulu panda (pra-v0.16), berulang dengan df.iterrows() sering digunakan. Walau bagaimanapun, ini jauh lebih perlahan daripada pendekatan yang lebih moden. Dengan penambahbaikan baru-baru ini, terdapat beberapa pilihan cekap tersedia.

Satu pendekatan yang disyorkan menggunakan fungsi zip() untuk membongkar output fungsi yang digunakan dan menetapkannya pada lajur yang dikehendaki. Kaedah ini berfungsi dengan mencipta satu siri tupel untuk setiap baris, dengan setiap tupel mengandungi nilai output yang dikehendaki. Tuple kemudiannya dibuka zip dan diberikan kepada lajur yang sepadan.

<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

Fungsi apply() juga boleh digunakan, yang menawarkan pendekatan yang lebih langsung. Fungsi yang digunakan harus mengembalikan DataFrame panda dengan bilangan lajur yang dikehendaki dan indeks baris yang sepadan dengan DataFrame input.

<code class="python">df = df.apply(lambda x: powers(x['num']), axis=1, result_type='expand')</code>
Salin selepas log masuk

Fungsi assign() , yang diperkenalkan dalam panda v0.16, menyediakan satu lagi cara mudah untuk buat lajur baharu. Ia membenarkan pengguna untuk terus memberikan lajur baharu kepada DataFrame menggunakan ungkapan.

<code class="python">df = df.assign(p1=df['num'].map(lambda x: x),
               p2=df['num'].map(lambda x: x**2))</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Berbilang Lajur dengan Cekap dalam Pandas DataFrame?. 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