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 })
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] })
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) })
Untuk menggunakan kedua-dua min dan jumlah pada lajur "pulangan":
df.groupby("dummy").agg({ "returns": ["mean", "sum"] })
Ini akan menghasilkan:
returns mean sum dummy 1 0.036901 0.369012
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!