Cara Menggunakan Berbilang Fungsi pada Berbilang Lajur Berkumpulan
Operasi kumpulan dalam Pandas membenarkan pengagregatan data berdasarkan lajur atau kekunci tertentu. Walau bagaimanapun, apabila bekerja dengan set data kompleks, anda mungkin perlu melakukan berbilang operasi pada lajur berbeza dalam data terkumpul.
Menggunakan Kamus untuk Siri Kumpulan-bys
Untuk objek kumpulan mengikut Siri, anda boleh menggunakan kamus untuk menentukan berbilang fungsi dan nama lajur output, seperti yang ditunjukkan di bawah:
grouped['D'].agg({'result1' : np.sum, .....: 'result2' : np.mean})
Pendekatan ini, walau bagaimanapun, tidak berfungsi untuk kumpulan DataFrame mengikut objek, kerana ia menjangkakan kekunci kamus mewakili nama lajur untuk menggunakan fungsi.
Fungsi Tersuai dengan Guna
Untuk menangani had ini , anda boleh memanfaatkan kaedah guna, yang secara tersirat menghantar DataFrame kepada fungsi yang digunakan. Dengan mentakrifkan fungsi tersuai dan mengembalikan Siri atau Siri MultiIndex, anda boleh melakukan berbilang operasi pada berbilang lajur dalam setiap kumpulan:
Mengembalikan Siri:
def f(x): d = {} d['a_sum'] = x['a'].sum() d['a_max'] = x['a'].max() d['b_mean'] = x['b'].mean() d['c_d_prodsum'] = (x['c'] * x['d']).sum() return pd.Series(d, index=['a_sum', 'a_max', 'b_mean', 'c_d_prodsum']) df.groupby('group').apply(f)
Mengembalikan Siri dengan MultiIndex:
def f_mi(x): d = [] d.append(x['a'].sum()) d.append(x['a'].max()) d.append(x['b'].mean()) d.append((x['c'] * x['d']).sum()) return pd.Series(d, index=[['a', 'a', 'b', 'c_d'], ['sum', 'max', 'mean', 'prodsum']]) df.groupby('group').apply(f_mi)
Pendekatan ini menyediakan cara yang fleksibel untuk melakukan pengagregatan kompleks pada data terkumpul, membenarkan berbilang operasi pada berbilang lajur dalam setiap kumpulan.
Atas ialah kandungan terperinci Bagaimana untuk Memohon Berbilang Fungsi pada Berbilang Lajur dalam Pandas GroupBy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!