Pandas 的 groupby
和 SQL 的 HAVING
子句的等效項
資料分析經常涉及資料分組和篩選。 SQL 的 GROUP BY
子句將資料列分組,從而啟用聚合函數套用。 Pandas 的 groupby
方法反映了這一點,但缺乏與 SQL 的 HAVING
子句直接等效的方法。
HAVING
子句根據聚合值條件過濾分組資料。 像這樣的 SQL 查詢:
<code class="language-sql">SELECT * ... GROUP BY col_name HAVING condition;</code>
先按col_name
分組,然後選擇符合聚合條件的行。
Pandas 使用 filter
物件的 groupby
方法來實現這一點。 此方法接受一個為每個群組傳回布林值的函數。 評估為 True
的組別將被保留;其他的則被丟棄。
考慮一個包含「A」和「B」列的 Pandas DataFrame df
。 模仿HAVING COUNT(*) > 1
:
<code class="language-python">g = df.groupby('A') filtered_df = g.filter(lambda x: len(x) > 1)</code>
這裡,filter
應用一個函數來計算每組的行數。 保留多行的群組,導致 filtered_df
僅包含這些群組。
filter
方法支援複雜濾波;任何傳回布林值的函數都可以使用。 這為根據不同條件選擇分組資料子集提供了極大的靈活性。
Pandas groupby
的 filter
方法有效複製了 SQL 的 HAVING
子句功能,實現對分組資料進行高效的條件過濾,以進行各種資料操作和統計分析。
以上是如何透過Pandas的groupby實現SQL的HAVING子句功能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!