Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan GROUP SQL DENGAN MEMPUNYAI Klausa dalam Pandas?
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()
.
<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. Untuk menggunakan penapis pada set data terkumpul dalam Pandas, ikut langkah berikut:
groupby()
pada DataFrame. filter()
pada setiap kumpulan menggunakan kaedah filter_function
. filter_function
harus mengembalikan nilai boolean untuk setiap kumpulan. 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>
filter_function
boleh menjadi sebarang fungsi Python yang sah yang menerima kumpulan Pandas sebagai input dan mengembalikan nilai Boolean. 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. 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!