Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memohon Berbilang Agregasi pada Lajur yang Sama dalam Panda?

Bagaimanakah Saya Boleh Memohon Berbilang Agregasi pada Lajur yang Sama dalam Panda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-23 03:07:26227semak imbas

How Can I Apply Multiple Aggregations to the Same Column in Pandas?

Menggunakan Berbilang Pengagregatan pada Lajur yang Sama dalam Panda

Dalam panda, GroupBy.agg() menyediakan cara yang mudah untuk melaksanakan berbilang fungsi pada data berkumpulan. Walau bagaimanapun, menggunakan fungsi yang berbeza pada lajur yang sama menggunakan agg() nampaknya mencabar.

Secara tradisinya, pendekatan sintaksis yang tidak betul tetapi diingini ialah menghantar kunci pendua kepada hujah kamus agg(), yang bukan dibenarkan dalam Python.

Untuk menangani perkara ini, panda menawarkan beberapa pilihan:

Pilihan 1: Senarai Tuple

Sehingga 2022-06-20, kaedah pilihan adalah dengan menyediakan senarai tupel [(lajur, fungsi)] kepada agg(), di mana setiap tupel mewakili pengagregatan untuk dilakukan pada lajur yang ditentukan.

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

Pilihan 2: Bersarang Kamus

Pendekatan lain ialah menggunakan kamus bersarang, dengan kunci luar ialah lajur dan nilai dalam ialah fungsi yang akan digunakan.

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

Pilihan 3: Senarai Fungsi

Untuk versi sejarah panda, pilihan alternatif adalah untuk lulus fungsi sebagai senarai dalam argumen kamus agg().

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

Dengan menggunakan pilihan ini, anda boleh melakukan berbilang pengagregatan pada lajur yang sama tanpa memerlukan fungsi tambahan atau memanggil agg() beberapa kali secara eksplisit.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memohon Berbilang Agregasi pada Lajur yang Sama dalam Panda?. 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