Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menambah Lajur pada DataFrame Berkumpulan Selepas Operasi Kumpulan mengikut 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']})
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')
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
Untuk menambah lajur 'saiz' , satu pilihan ialah menggunakan fungsi peta:
a.index = a['c'] g['size'] = g['c'].map(a['size'])
Walau bagaimanapun, terdapat pendekatan yang lebih mudah menggunakan fungsi transformasi:
g['size'] = df.groupby('c')['type'].transform('size')
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
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!