Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggunakan Fungsi Pengagregatan Berbilang pada Lajur yang Sama Menggunakan panda GroupBy?

Bagaimanakah Saya Boleh Menggunakan Fungsi Pengagregatan Berbilang pada Lajur yang Sama Menggunakan panda GroupBy?

Patricia Arquette
Patricia Arquetteasal
2024-12-08 11:42:12456semak imbas

How Can I Apply Multiple Aggregation Functions to the Same Column Using pandas GroupBy?

Mengagregatkan dengan Berbilang Fungsi pada Lajur Yang Sama Menggunakan GroupBy

Dalam perpustakaan panda Python, fungsi GroupBy.agg() menyediakan cara yang mudah untuk menggunakan fungsi pengagregatan pada data terkumpul. Walau bagaimanapun, perlu diingat bahawa menggunakan berbilang fungsi pada lajur yang sama boleh menjadi rumit.

Pada mulanya, ia mungkin kelihatan intuitif untuk menggunakan sintaks berikut:

df.groupby("dummy").agg({"returns": f1, "returns": f2})

Walau bagaimanapun, pendekatan ini gagal disebabkan untuk menduplikasi kunci yang tidak dibenarkan dalam Python. Sebaliknya, panda menawarkan beberapa kaedah untuk melakukan pengagregatan sedemikian:

Kaedah 1: Senarai Fungsi

Fungsi boleh diluluskan sebagai senarai:

df.groupby("dummy").agg({"returns": [np.mean, np.sum]})

Kaedah 2: Kamus Fungsi

Fungsi boleh dihantar sebagai kamus dengan kekunci mewakili nama lajur dan nilai yang mewakili senarai fungsi:

df.groupby("dummy").agg({"returns": {"Mean": np.mean, "Sum": np.sum}})

Kaedah 3: Kemas Kini Terkini (seperti 2022-06-20)

Dalam versi terbaru panda, sintaks berikut diutamakan:

df.groupby('dummy').agg(
    Mean=('returns', np.mean),
    Sum=('returns', np.sum))

Sintaks ini bukan sahaja berfungsi dengan lancar tetapi juga memberikan kejelasan dan fleksibiliti yang lebih besar dalam menentukan fungsi pengagregatan dan nama lajur.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Fungsi Pengagregatan Berbilang pada Lajur yang Sama Menggunakan panda GroupBy?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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