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

Bagaimana untuk Mencipta Berbilang Lajur dengan Cekap dalam Pandas DataFrame?

Susan Sarandon
Susan Sarandonasal
2024-10-29 04:24:29916semak imbas

 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>

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>

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>

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!

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