Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencapai KUMPULAN SQL DENGAN MEMPUNYAI Kefungsian dengan Penapisan Bersyarat Pandas?

Bagaimana untuk Mencapai KUMPULAN SQL DENGAN MEMPUNYAI Kefungsian dengan Penapisan Bersyarat Pandas?

Patricia Arquette
Lepaskan: 2025-01-10 17:35:41
asal
559 orang telah melayarinya

How to Achieve SQL's GROUP BY HAVING Functionality with Pandas Conditional Filtering?

Penapisan kumpulan data Panda: setara dengan SQL's GROUP BY HAVING

Dalam analisis data, selalunya diperlukan untuk menapis data berdasarkan syarat yang digunakan pada kumpulan data. Dalam SQL, klausa HAVING membenarkan penapisan bersyarat jenis ini. Dalam Pandas, kefungsian serupa boleh dicapai menggunakan gabungan operasi kumpulan mengikut dan penapis.

Untuk menggunakan penapis pada data terkumpul dalam Pandas, anda boleh menggunakan kaedah penapis yang disediakan dalam objek kumpulan mengikut. Kaedah ini menerima fungsi sebagai input dan menggunakannya untuk setiap kumpulan. Jika fungsi mengembalikan True untuk kumpulan, kumpulan itu dikekalkan jika tidak, ia dikecualikan.

Pertimbangkan contoh berikut:

<code class="language-python">import pandas as pd

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

# 按列 A 分组数据框
g = df.groupby('A')

# 过滤以包含超过 1 行的组
filtered_df = g.filter(lambda x: len(x) > 1)

print(filtered_df)</code>
Salin selepas log masuk

Output:

<code>   A  B
0  1  2
1  1  3</code>
Salin selepas log masuk

Dalam contoh ini, operasi groupby mencipta objek kumpulan untuk setiap nilai yang berbeza dalam lajur A. Kaedah penapis kemudian digunakan pada setiap objek kumpulan dan fungsi len(x) digunakan untuk menentukan sama ada kumpulan itu harus dikekalkan atau dikecualikan. Dalam contoh ini, kumpulan dengan lebih daripada 1 baris dikekalkan, menghasilkan bingkai data yang ditapis.

Anda juga boleh mencipta fungsi penapis yang lebih kompleks, asalkan ia mengembalikan nilai boolean. Contohnya, untuk menapis kumpulan berdasarkan jumlah nilai lajur B, anda akan menggunakan:

<code class="language-python">filtered_df = g.filter(lambda x: x['B'].sum() == 5)</code>
Salin selepas log masuk

Perhatikan bahawa mungkin terdapat pepijat yang berpotensi di mana anda tidak boleh mengakses lajur yang digunakan untuk mengumpulkan dalam fungsi penapis. Satu penyelesaian ialah mengumpulkan bingkai data secara manual menggunakan nama lajur.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai KUMPULAN SQL DENGAN MEMPUNYAI Kefungsian dengan Penapisan Bersyarat Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan