Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan GROUP SQL DENGAN MEMPUNYAI Klausa dalam Pandas?

Bagaimana untuk Melaksanakan GROUP SQL DENGAN MEMPUNYAI Klausa dalam Pandas?

Susan Sarandon
Susan Sarandonasal
2025-01-10 17:29:41855semak imbas

How to Implement SQL's GROUP BY HAVING Clause in Pandas?

Pelaksanaan SQL GROUP DENGAN MEMPUNYAI klausa dalam Panda

Dalam SQL, operasi GROUP BY membahagikan data kepada subset berdasarkan nilai lajur yang ditentukan. Klausa HAVING menggunakan kekangan penapis pada subset ini. Ciri ini membenarkan pengagregatan dan penapisan data terpilih.

Dalam Pandas, kefungsian GROUP BY tersedia melalui kaedah groupby(), yang mengembalikan objek GroupBy. Pandas bersamaan klausa SQL HAVING ialah kaedah filter(), yang menggunakan penapis pada subset yang dibuat oleh groupby().

Sintaks:

<code>df.groupby(by_column).filter(filter_function)</code>

Antaranya:

  • df ialah Pandas DataFrame.
  • by_column ialah lajur yang digunakan untuk mengumpulkan.
  • filter_function ialah fungsi yang mengembalikan nilai boolean untuk setiap kumpulan.

Penggunaan:

Untuk menggunakan penapis pada set data terkumpul dalam Pandas, ikut langkah berikut:

  1. Buat objek GroupBy dengan memanggil groupby() pada DataFrame.
  2. Gunakan filter() pada setiap kumpulan menggunakan kaedah filter_function.
  3. filter_function harus mengembalikan nilai boolean untuk setiap kumpulan.
  4. Kumpulan yang ditapis akan dikembalikan sebagai DataFrame baharu.

Contoh:

Andaikan kita mempunyai Pandas DataFrame berikut:

<code>df = pd.DataFrame([[1, 2], [1, 3], [5, 6]], columns=['A', 'B'])</code>

Untuk mencari kumpulan yang jumlahnya dalam lajur B lebih daripada 4, kita boleh menggunakan kod berikut:

<code>result = df.groupby('A').filter(lambda x: x['B'].sum() > 4)</code>

Hasilnya ialah DataFrame baharu yang mengandungi baris daripada kumpulan yang memenuhi kriteria penapis:

<code>print(result)</code>

Output:

<code>   A  B
0  1  2
1  1  3</code>

Nota Tambahan:

  • filter_function boleh menjadi sebarang fungsi Python yang sah yang menerima kumpulan Pandas sebagai input dan mengembalikan nilai Boolean.
  • Perlu ambil perhatian bahawa filter_function tidak mempunyai akses kepada lajur yang digunakan untuk pengumpulan. Jika anda perlu mengakses lajur ini, anda boleh mengumpulkan mengikut lajur secara manual sebelum menggunakan penapis.
  • Kefungsian GROUP BY HAVING dalam Pandas menyediakan cara yang berkesan untuk melaksanakan operasi pengagregatan dan penapisan data yang kompleks.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan GROUP SQL DENGAN MEMPUNYAI Klausa dalam Pandas?. 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