Bagaimana untuk Menambah Lajur Menggunakan Pandas Transform dalam GroupBy DataFrames?

Mary-Kate Olsen
Lepaskan: 2024-10-19 11:52:01
asal
1052 orang telah melayarinya

How to Add a Column Using Pandas Transform in GroupBy DataFrames?

Tambah Lajur pada GroupBy DataFrame Menggunakan Pandas Transform

Apabila bekerja dengan operasi kumpulan dalam panda, selalunya berguna untuk menambah lajur baharu pada bingkai data yang terhasil. Satu kaedah untuk mencapai ini ialah menggunakan fungsi .map(), seperti yang ditunjukkan dalam contoh. Walau bagaimanapun, pendekatan alternatif dan lebih mudah ialah menggunakan fungsi .transform().

.transform() membolehkan kami menggunakan fungsi pada setiap kumpulan dalam rangka data dan mengembalikan Siri dengan hasilnya. Siri yang dikembalikan akan mempunyai indeks yang sejajar dengan bingkai data asal.

Untuk menggambarkan, mari kita mulakan dengan bingkai data yang disediakan:

df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})
Salin selepas log masuk

Matlamat kami adalah untuk mengira nilai jenis bagi setiap c dan tambah lajur dengan saiz c.

g = df.groupby('c')['type'].value_counts().reset_index(name='t')
Salin selepas log masuk

Kod ini mengira nilai untuk setiap kumpulan dan mencipta lajur baharu bernama t.

Untuk menambah lajur saiz menggunakan .transform( ), kita boleh melakukan perkara berikut:

g['size'] = df.groupby('c')['type'].transform('size')
Salin selepas log masuk

.transform('size') menggunakan fungsi saiz untuk setiap kumpulan, yang mengembalikan saiz setiap kumpulan. Siri yang terhasil diselaraskan dengan indeks rangka data asal, membolehkan kami menambahkannya sebagai lajur baharu pada g.

Output akan menjadi bingkai data dengan lajur tambahan bernama saiz:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4
Salin selepas log masuk

Menggunakan .transform() menyediakan cara yang lebih ringkas dan mudah untuk menambah lajur kembali ke kerangka data asal daripada pengagregatan kumpulan.

Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur Menggunakan Pandas Transform dalam GroupBy DataFrames?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
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