Panda' groupby
dan Setara dengan SQL HAVING
Klausa
Analisis data selalunya melibatkan pengumpulan dan penapisan data. Klausa GROUP BY
SQL mengumpulkan baris, mendayakan aplikasi fungsi agregat. Kaedah groupby
Pandas mencerminkan perkara ini, tetapi tidak mempunyai persamaan langsung dengan klausa HAVING
SQL.
Klausa HAVING
menapis data terkumpul berdasarkan syarat nilai agregat. Pertanyaan SQL seperti ini:
<code class="language-sql">SELECT * ... GROUP BY col_name HAVING condition;</code>
kumpulan pertama dengan col_name
, kemudian pilih baris yang memenuhi syarat agregat.
Panda mencapai ini menggunakan kaedah filter
objek groupby
. Kaedah ini menerima fungsi yang mengembalikan boolean untuk setiap kumpulan. Kumpulan yang menilai kepada True
dikekalkan; yang lain dibuang.
Pertimbangkan Pandas DataFrame df
dengan lajur 'A' dan 'B'. Untuk meniru HAVING COUNT(*) > 1
:
<code class="language-python">g = df.groupby('A') filtered_df = g.filter(lambda x: len(x) > 1)</code>
Di sini, filter
menggunakan fungsi mengira baris setiap kumpulan. Kumpulan yang mempunyai lebih daripada satu baris disimpan, menyebabkan filtered_df
mengandungi kumpulan tersebut sahaja.
Kaedah filter
menyokong penapisan kompleks; sebarang fungsi pengembalian boolean boleh digunakan. Ini menawarkan fleksibiliti yang hebat dalam memilih subset data terkumpul berdasarkan keadaan yang pelbagai.
Pandas groupby
secara berkesan mereplikasi fungsi klausa filter
SQL, membolehkan penapisan bersyarat yang cekap bagi data berkumpulan untuk pelbagai manipulasi data dan analisis statistik.HAVING
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Fungsi Klausa HAVING SQL dengan groupby Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!