Pandas Split Apply Combine

Zeeshan Afridi 21 Juni 2023
  1. Teilen Kombinieren-Strategie anwenden
  2. Verwenden Sie die Split-Apply-Combine-Strategie
  3. Abschluss
Pandas Split Apply Combine

In diesem Artikel besprechen wir die Split-Apply-Combine-Strategie von Pandas. Diese Strategie ist bei der Arbeit mit großen Datensätzen von Vorteil, da es schwierig sein kann, alle Daten auf einmal zu analysieren.

Teilen Kombinieren-Strategie anwenden

Die Pandas Split Apply Combine-Strategie ist eine leistungsstarke Datenanalysetechnik, bei der ein Datensatz in Gruppen partitioniert wird, eine Funktion für jede Gruppe verwendet wird und die Ergebnisse dann kombiniert werden. Diese Strategie kann verschiedene Datenanalyseaufgaben ausführen, z. B. das Aggregieren von Daten, das Berechnen von Statistiken und das Auffinden von Mustern.

Denken Sie an die folgenden Punkte, wenn Sie die Split-Apply-Combine-Strategie verwenden.

  1. Zunächst ist es wichtig, eine geeignete Funktion auszuwählen, die auf die Daten angewendet werden soll.
  2. Zweitens werden die Analyseergebnisse davon beeinflusst, wie die Daten gruppiert sind. Wenn die Informationen beispielsweise nach Jahr gruppiert sind, sind die Ergebnisse anders als wenn die Daten nach Land gruppiert sind.

Es kann uns helfen, Beziehungen zwischen Variablen zu verstehen und Muster zu erkennen, die bei Betrachtung der Daten als Ganzes schwer zu erkennen wären.

Verwenden Sie die Split-Apply-Combine-Strategie

Die Split-Apply-Combine-Strategie kann verwendet werden, um verschiedene Arten von Fragen zu beantworten, darunter:

  1. Wie hoch ist das Durchschnittsalter der Menschen in jedem Staat?
  2. Wie hoch ist die Gesamtzahl der Menschen in jedem Staat?
  3. Wie hoch ist das durchschnittliche Einkommen der Menschen in jedem Staat?

Zuerst nehmen wir eine Reihe von Daten wie den folgenden Code.

import numpy as np
import pandas as pd

df = pd.DataFrame(
    {
        "A": ["one", "two", "three", "four", "five", "six", "seven", "eight"],
        "B": ["AB", "BC", "CD", "DE", "EF", "FG", "GH", "HI"],
        "C": np.random.randn(8),
        "D": np.random.randn(8),
    }
)
print(df)

Ausgang:

    A       B       C           D
0   one     AB  -1.178015   -0.718776
1   two     BC  -0.149049   0.557202
2   three   CD  -0.486704   1.491223
3   four    DE  0.143172    1.669733
4   five    EF  -0.627370   0.825338
5   six     FG  2.105268    -0.239559
6   seven   GH  1.203344    0.592531
7   eight   HI  1.756920    1.164611

Um die Split-Apply-Combine-Strategie zu verwenden, müssen Sie:

  1. Teilen Sie die Daten in Gruppen auf.
  2. Wenden Sie eine Funktion auf jede Gruppe an.
  3. Kombinieren Sie die Ergebnisse.

Teilen Sie die Daten in Gruppen auf

Sie müssen Ihre Daten zuerst in Gruppen aufteilen, um die kombinierte Methode zu verwenden. Sie können dies mit der pandas groupby-Funktion tun.

Um die Daten in Gruppen aufzuteilen, müssen Sie sich für eine Variable entscheiden, nach der gruppiert werden soll. Diese Variable bestimmt, wie die Daten in Gruppen aufgeteilt werden.

grouped = df.groupby(["A", "B"])

Wenden Sie eine Funktion auf jede Gruppe an

Sobald Ihre Daten gruppiert sind, können Sie eine Funktion auf jede Gruppe anwenden. Dies kann jede beliebige Funktion sein, aber sie muss in der Lage sein, mit einer Gruppe von Daten zu arbeiten.

df2 = df.set_index(["A", "B"])

Kombinieren Sie die Ergebnisse

Schließlich können Sie die Ergebnisse des Anwendungsschritts mit der Pandas-Funktion concat zu einem einzigen Datenrahmen kombinieren. Dadurch erhalten Sie einen einzigen Datenrahmen, der die Ergebnisse des Bewerbungsschritts für jede Gruppe enthält.

Dies kann auf unterschiedliche Weise erfolgen, je nachdem, welche Frage Sie beantworten möchten.

grouped.sum()

Lassen Sie uns jede der obigen Aussagen kombinieren und sehen, wie es funktioniert.

Codebeispiel:

import numpy as np
import pandas as pd

df = pd.DataFrame(
    {
        "A": ["one", "two", "three", "four", "five", "six", "seven", "eight"],
        "B": ["AB", "BC", "CD", "DE", "EF", "FG", "GH", "HI"],
        "C": np.random.randn(8),
        "D": np.random.randn(8),
    }
)
# split the data
grouped = df.groupby(["A", "B"])

# apply a function to each group
df2 = df.set_index(["A", "B"])

# combine the group
grouded_data = grouped.sum()

print(grouded_data)

Ausgang:

                 C         D
A     B
eight HI -0.398241 -1.145102
five  EF  0.439858 -0.923552
four  DE -1.150551 -1.466125
one   AB  0.882921  0.078129
seven GH -1.750068 -0.568044
six   FG -1.335543  0.562349
three CD -0.876180  1.007510
two   BC  1.275738  0.136052

Abschluss

Die Split-Apply-Combine-Strategie ist eine der am häufigsten verwendeten Strategien in der Datenwissenschaft. Es ist eine flexible und präzise Möglichkeit, Daten in Gruppen aufzuteilen, Funktionen auf diese Gruppen anzuwenden und dann die Ergebnisse zu kombinieren.

Der SAC-Prozess ist ein wichtiger Bestandteil der Pandas-Bibliothek und wird von Datenwissenschaftlern ausgiebig genutzt. Es gibt viele Anwendungsfälle für die Pandas-Split-Apply-Combine-Strategie. Wenn Sie mehr wissen möchten, lesen Sie den Blog und probieren Sie es aus.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

Verwandter Artikel - Pandas DataFrame