Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggabungkan Bingkai Data Berkumpulan Dengan Berkesan Menggunakan df.groupby().transform()?
Menggabungkan Bingkai Data Kumpulan dengan df.groupby().transform()
Apabila berurusan dengan bingkai data panda, selalunya perlu melakukan operasi pada subset data, seperti mengumpulkan nilai dan mengira statistik. Walau bagaimanapun, ia boleh menyusahkan untuk menggabungkan hasil operasi ini kembali ke dalam rangka data asal.
Untuk menangani cabaran ini, pertimbangkan senario berikut:
Masalah: Anda mempunyai kerangka data dengan dua lajur, 'c' dan 'jenis'. Matlamat anda adalah untuk mengira nilai 'jenis' bagi setiap 'c' dan menambah lajur pada bingkai data dengan saiz 'c'.
Pendekatan 1 (Menggunakan Peta):
Satu pendekatan ialah menggunakan fungsi map(), yang menggunakan fungsi pada setiap nilai dalam Siri. Dalam kes ini, anda boleh memetakan saiz 'c' kepada nilai 'c' yang sepadan dalam bingkai data:
<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t') a = df.groupby('c').size().reset_index(name='size') a.index = a['c'] g['size'] = g['c'].map(a['size'])</code>
Pendekatan ini berfungsi tetapi melibatkan berbilang langkah dan penjajaran indeks manual.
Pendekatan 2 (Menggunakan Transformasi):
Penyelesaian yang lebih mudah ialah menggunakan fungsi transform() panda, yang menggunakan fungsi pada setiap baris bingkai data, mengembalikan Siri yang sejajar dengan indeks asal. Anda boleh menggunakan transformasi untuk menambah saiz 'c' terus pada bingkai data:
<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t') g['size'] = df.groupby('c')['type'].transform('size')</code>
Pendekatan ini menghapuskan keperluan untuk pengiraan saiz dan penjajaran indeks yang berasingan, menghasilkan penyelesaian yang lebih ringkas dan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Bingkai Data Berkumpulan Dengan Berkesan Menggunakan df.groupby().transform()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!