In SQL unterteilt die GROUP BY-Operation Daten basierend auf den Werten angegebener Spalten in Teilmengen. Die HAVING-Klausel wendet Filtereinschränkungen auf diese Teilmengen an. Diese Funktion ermöglicht die selektive Datenaggregation und -filterung.
In Pandas ist die GROUP BY-Funktionalität über die Methode groupby()
verfügbar, die ein GroupBy-Objekt zurückgibt. Das Pandas-Äquivalent der SQL-HAVING-Klausel ist die Methode filter()
, die einen Filter auf die von groupby()
erstellte Teilmenge anwendet.
<code>df.groupby(by_column).filter(filter_function)</code>
Unter ihnen:
df
ist ein Pandas DataFrame. by_column
ist die Spalte, die für die Gruppierung verwendet wird. filter_function
ist eine Funktion, die für jede Gruppe einen booleschen Wert zurückgibt. Um einen Filter auf einen gruppierten Datensatz in Pandas anzuwenden, führen Sie die folgenden Schritte aus:
groupby()
in einem DataFrame aufrufen. filter()
mit der filter_function
-Methode auf jede Gruppe an. filter_function
sollte für jede Gruppe einen booleschen Wert zurückgeben. Angenommen, wir haben den folgenden Pandas DataFrame:
<code>df = pd.DataFrame([[1, 2], [1, 3], [5, 6]], columns=['A', 'B'])</code>
Um die Gruppen zu finden, deren Summe in Spalte B größer als 4 ist, können wir den folgenden Code verwenden:
<code>result = df.groupby('A').filter(lambda x: x['B'].sum() > 4)</code>
Das Ergebnis ist ein neuer DataFrame, der Zeilen aus den Gruppen enthält, die die Filterkriterien erfüllen:
<code>print(result)</code>
Ausgabe:
<code> A B 0 1 2 1 1 3</code>
filter_function
kann jede gültige Python-Funktion sein, die eine Pandas-Gruppe als Eingabe akzeptiert und einen booleschen Wert zurückgibt. filter_function
keinen Zugriff auf die zur Gruppierung verwendeten Spalten hat. Wenn Sie auf diese Spalten zugreifen müssen, können Sie sie manuell nach Spalte gruppieren, bevor Sie den Filter anwenden. Das obige ist der detaillierte Inhalt vonWie implementiert man die GROUP BY HAVING-Klausel von SQL in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!