Heim > Datenbank > MySQL-Tutorial > Wie implementiert man die GROUP BY HAVING-Klausel von SQL in Pandas?

Wie implementiert man die GROUP BY HAVING-Klausel von SQL in Pandas?

Susan Sarandon
Freigeben: 2025-01-10 17:29:41
Original
852 Leute haben es durchsucht

How to Implement SQL's GROUP BY HAVING Clause in Pandas?

Implementierung der SQL GROUP BY HAVING-Klausel in Pandas

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.

Syntax:

<code>df.groupby(by_column).filter(filter_function)</code>
Nach dem Login kopieren

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.

Verwendung:

Um einen Filter auf einen gruppierten Datensatz in Pandas anzuwenden, führen Sie die folgenden Schritte aus:

  1. Erstellen Sie ein GroupBy-Objekt, indem Sie groupby() in einem DataFrame aufrufen.
  2. Wenden Sie filter() mit der filter_function-Methode auf jede Gruppe an.
  3. filter_function sollte für jede Gruppe einen booleschen Wert zurückgeben.
  4. Die gefilterten Gruppen werden als neuer DataFrame zurückgegeben.

Beispiel:

Angenommen, wir haben den folgenden Pandas DataFrame:

<code>df = pd.DataFrame([[1, 2], [1, 3], [5, 6]], columns=['A', 'B'])</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Das Ergebnis ist ein neuer DataFrame, der Zeilen aus den Gruppen enthält, die die Filterkriterien erfüllen:

<code>print(result)</code>
Nach dem Login kopieren

Ausgabe:

<code>   A  B
0  1  2
1  1  3</code>
Nach dem Login kopieren

Zusätzliche Hinweise:

  • filter_function kann jede gültige Python-Funktion sein, die eine Pandas-Gruppe als Eingabe akzeptiert und einen booleschen Wert zurückgibt.
  • Es ist wichtig zu beachten, dass 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.
  • Die GROUP BY HAVING-Funktion in Pandas bietet eine leistungsstarke Möglichkeit, komplexe Datenaggregations- und Filtervorgänge durchzuführen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage