Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menggabungkan Bingkai Data Berkumpulan Dengan Berkesan Menggunakan df.groupby().transform()?

Bagaimana untuk Menggabungkan Bingkai Data Berkumpulan Dengan Berkesan Menggunakan df.groupby().transform()?

Barbara Streisand
Barbara Streisandasal
2024-10-19 12:29:29343semak imbas

How to Combine Grouped Dataframes Effectively Using 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!

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