Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggunakan Berbilang Fungsi pada Berbilang Lajur dalam Kumpulan PandasBy DataFrame?

Bagaimanakah Saya Boleh Menggunakan Berbilang Fungsi pada Berbilang Lajur dalam Kumpulan PandasBy DataFrame?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 03:49:09643semak imbas

How Can I Apply Multiple Functions to Multiple Columns in a Pandas GroupBy DataFrame?

Memohon Berbilang Fungsi pada Berbilang Lajur Berkumpulan

Apabila bekerja dengan data terkumpul, kaedah kumpulan mengikut dalam Pandas membenarkan anda menggunakan berbilang fungsi serentak menggunakan sebuah kamus. Walau bagaimanapun, pendekatan ini hanya berfungsi untuk Siri kumpulan mengikut objek.

Jika anda mempunyai kumpulan mengikut DataFrame dan ingin menggunakan fungsi pada berbilang lajur, anda menghadapi cabaran untuk menentukan nama lajur sebagai kunci dalam kamus. Selain itu, fungsi tertentu mungkin bergantung pada lajur lain, menjadikannya rumit untuk menggunakan kaedah agg.

Berikut ialah pilihan yang tersedia:

Menggunakan Kaedah apply

Kaedah apply secara tersirat menghantar DataFrame kepada fungsi yang digunakan. Ini membolehkan anda bekerja dengan berbilang lajur sekaligus. Gunakan kamus untuk memetakan nama lajur kepada fungsi pengagregatan:

df.groupby('group').apply({'a': ['sum', 'max'], 'b': 'mean', 'c': 'sum', 'd': lambda x: x.max() - x.min()})

Sebagai alternatif, anda boleh menggunakan fungsi tersuai untuk mengembalikan Siri semua pengagregatan:

def f(x):
    return pd.Series({'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), 'c_d_prodsum': (x['c'] * x['d']).sum()})

df.groupby('group').apply(f)

Penghadan dan Alternatif

  • Kaedah guna secara berulang menggunakan fungsi untuk setiap kumpulan, yang boleh menjadi perlahan untuk set data yang besar.
  • Jika anda memerlukan fungsi pengagregatan tersuai yang bukan fungsi Pandas terbina dalam, anda mungkin perlu menggunakan kaedah agg dengan lambda tersuai atau menggunakan satu siri operasi pada DataFrame berkumpulan.

Kesimpulannya, sementara Pandas tidak mempunyai cara terbina dalam untuk menggunakan berbilang fungsi pada lajur tertentu dalam kumpulan mengikut DataFrame, kaedah guna menawarkan penyelesaian yang fleksibel dan boleh disesuaikan untuk kebanyakan senario. Untuk pengagregatan kompleks yang melibatkan berbilang lajur dan kebergantungan, anda mungkin perlu meneroka pendekatan alternatif atau lelaran melalui objek berkumpulan secara manual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Berbilang Fungsi pada Berbilang Lajur dalam Kumpulan PandasBy DataFrame?. 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