Tidak seperti objek kumpulan mengikut Siri, menggunakan berbilang fungsi pada objek kumpulan mengikut DataFrame menggunakan kamus bukanlah mudah. Walau bagaimanapun, terdapat cara yang cekap untuk mencapai ini menggunakan kaedah berikut:
Menggunakan Kaedah guna
Jika fungsi yang diingini beroperasi pada lajur individu, memanfaatkan kaedah guna adalah pilihan yang sesuai. Kaedah guna membolehkan menghantar fungsi yang mengubah keseluruhan kumpulan (DataFrame) kepada objek lain. Contohnya:
grouped = df.groupby('group') aggregated = grouped.apply(lambda x: pd.Series({ 'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), }))
Pendekatan ini mengagregatkan berbilang lajur dengan cekap dan mengembalikan DataFrame dengan lajur yang dikehendaki.
Mengembalikan Siri daripada digunakan
Apabila berurusan dengan berbilang lajur yang perlu berinteraksi, kaedah agg tidak boleh digunakan kerana ia secara tersirat menghantar Siri kepada fungsi pengagregatan. Sebaliknya, fungsi tersuai boleh dibuat yang mengembalikan Siri. Contohnya:
def aggregate_group(x): return pd.Series({ 'a_sum': x['a'].sum(), 'b_mean': x['b'].mean(), 'c_d_prod': (x['c'] * x['d']).sum() }) grouped = df.groupby('group') result = grouped.apply(aggregate_group)
Kaedah ini membenarkan penggunaan berbilang fungsi pada berbilang lajur berkumpulan dan mengembalikan hasil dalam satu langkah.
Menyesuaikan Nama Fungsi
Jika dikehendaki, nama tersuai boleh diberikan kepada fungsi menggunakan atribut __name__. Hanya tetapkan __name__ kepada nama yang diingini selepas mentakrifkan fungsi, yang akan meningkatkan kejelasan lajur yang dijana.
Perlu diambil perhatian bahawa menggunakan gelung untuk lelaran melalui objek berkumpulan secara amnya kurang cekap berbanding kaedah di atas. Pandas dioptimumkan untuk operasi bervektor, menjadikan kaedah terbina dalam ini sebagai pendekatan pilihan untuk analisis peringkat kumpulan yang cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Berbilang Fungsi dengan Cekap pada Lajur DataFrame Berkumpulan dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!