Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Melaksanakan Berbilang Pengagregatan pada Lajur Yang Sama Menggunakan Pandas GroupBy.agg()?

Bagaimanakah Saya Boleh Melaksanakan Berbilang Pengagregatan pada Lajur Yang Sama Menggunakan Pandas GroupBy.agg()?

Patricia Arquette
Lepaskan: 2024-12-06 17:50:15
asal
1025 orang telah melayarinya

How Can I Perform Multiple Aggregations on the Same Column Using Pandas GroupBy.agg()?

Berbilang Pengagregatan pada Lajur yang Sama dengan Pandas GroupBy.agg()

Dalam panda, GroupBy.agg() membenarkan pengagregatan yang mudah bagi data dengan menggunakan fungsi pada setiap lajur. Walau bagaimanapun, adalah perlu untuk memanggil agg() beberapa kali apabila menggunakan fungsi yang berbeza pada lajur yang sama.

Pendekatan Tradisional (Salah):

Pendekatan intuitif mudah akan be:

df.groupby("dummy").agg({
    "returns": f1, 
    "returns": f2
})
Salin selepas log masuk

Malangnya, ini mengakibatkan ralat disebabkan pendua kekunci.

Penyelesaian:

Memandangkan agg() menjangkakan kamus, penyelesaian yang mudah ialah mencipta kamus dengan nama lajur dan senarai fungsi:

df.groupby("dummy").agg({
    "returns": [f1, f2]
})
Salin selepas log masuk

Ini akan menghasilkan DataFrame berbilang indeks dengan output kedua-dua pengagregatan.

Contoh:

Pertimbangkan DataFrame berikut:

import pandas as pd
import datetime as dt
import numpy as np

pd.np.random.seed(0)
df = pd.DataFrame({
    "date": [dt.date(2012, x, 1) for x in range(1, 11)],
    "returns": 0.05 * np.random.randn(10),
    "dummy": np.repeat(1, 10)
})
Salin selepas log masuk

Untuk menggunakan kedua-dua min dan jumlah pada lajur "pulangan":

df.groupby("dummy").agg({
    "returns": ["mean", "sum"]
})
Salin selepas log masuk

Ini akan menghasilkan:

           returns          
           mean       sum
dummy                    
1      0.036901  0.369012
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pengagregatan pada Lajur Yang Sama Menggunakan Pandas GroupBy.agg()?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan