Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Berbilang Lajur dengan Cekap dalam 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!