Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggunakan Berbilang Fungsi dengan Cekap pada Lajur DataFrame Berkumpulan dalam Panda?

Bagaimanakah Saya Boleh Menggunakan Berbilang Fungsi dengan Cekap pada Lajur DataFrame Berkumpulan dalam Panda?

DDD
Lepaskan: 2024-12-16 15:47:14
asal
354 orang telah melayarinya

How Can I Efficiently Apply Multiple Functions to Grouped DataFrame Columns in Pandas?

Menggunakan Berbilang Fungsi pada Lajur Dikumpulkan dengan Cekap

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(),
}))
Salin selepas log masuk

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)
Salin selepas log masuk

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!

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