Bagaimana untuk Menambah Lajur pada DataFrame Berkumpulan Selepas Operasi Kumpulan mengikut Pandas?

DDD
Lepaskan: 2024-10-19 12:02:30
asal
876 orang telah melayarinya

How to Add a Column to a Grouped DataFrame After Groupby Operations in Pandas?

Tambah Lajur pada Bingkai Data Berkumpulan dalam panda

Apabila bekerja dengan operasi GroupBy dalam panda, adalah berfaedah untuk menambah maklumat tambahan pada hasil rangka data. Artikel ini meneroka soalan tentang cara menambahkan lajur pada bingkai data berkumpulan dengan cekap selepas melakukan pengagregatan kumpulan mengikut pengagregatan.

Pertimbangkan bingkai data berikut:

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

Matlamatnya adalah untuk mengira nilai bagi lajur 'jenis' untuk setiap nilai 'c' dan tambah lajur baharu pada bingkai data terkumpul yang mewakili 'saiz' setiap kumpulan 'c'. Selepas melakukan pengagregatan kumpulan mengikut:

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

bingkai data 'g' kini mengandungi kiraan 'jenis' untuk setiap 'c':

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

Untuk menambah lajur 'saiz' , satu pilihan ialah menggunakan fungsi peta:

a.index = a['c']
g['size'] = g['c'].map(a['size'])
Salin selepas log masuk

Walau bagaimanapun, terdapat pendekatan yang lebih mudah menggunakan fungsi transformasi:

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

Menggunakan transformasi, lajur saiz boleh ditambah terus ke bingkai data 'g', menjajarkan indeks dengan bingkai data asal. Bingkai data yang terhasil:

   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

Atas ialah kandungan terperinci Bagaimana untuk Menambah Lajur pada DataFrame Berkumpulan Selepas Operasi Kumpulan mengikut Pandas?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!