Pandas

So verwenden Sie Group by in Pandas Python

So verwenden Sie Group by in Pandas Python
Pandas group by function wird verwendet, um DataFrames-Objekte oder -Spalten basierend auf bestimmten Bedingungen oder Regeln zu gruppieren. Mit der Groupby-Funktion ist die Datensatzverwaltung einfacher. Alle zugehörigen Datensätze können jedoch in Gruppen angeordnet werden. Mit der Pandas-Bibliothek können Sie die Pandas-Gruppe nach Funktion implementieren, um die Daten nach verschiedenen Arten von Variablen zu gruppieren. Die meisten Entwickler verwendeten drei grundlegende Techniken für die Gruppierung nach Funktion used. Erstens die Aufteilung, bei der Daten basierend auf bestimmten Bedingungen in Gruppen unterteilt werden. Wenden Sie dann bestimmte Funktionen auf diese Gruppen an. Kombinieren Sie am Ende die Ausgabe in Form einer Datenstruktur.

In diesem Artikel werden wir die grundlegenden Verwendungen einer Gruppe nach Funktion in Pandas Python durchgehen. Alle Befehle werden im Pycharm-Editor ausgeführt.

Lassen Sie uns das Hauptkonzept der Gruppe mit Hilfe der Daten des Mitarbeiters besprechen. Wir haben einen Datenrahmen mit einigen nützlichen Mitarbeiterdetails erstellt (Employee_Names, Designation, Employee_city, Age).

String-Verkettung mit Gruppieren nach Funktion

Mit der groupby-Funktion können Sie Strings verketten. Dieselben Datensätze können mit ',' in einer einzelnen Zelle verbunden werden.

Beispiel

Im folgenden Beispiel haben wir die Daten nach der Spalte „Bezeichnung“ des Mitarbeiters sortiert und die Mitarbeiter mit der gleichen Benennung hinzugefügt. Die Lambda-Funktion wird auf 'Employees_Name' angewendet.

Pandas als pd importieren
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karatschi', 'Karatschi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby("Bezeichnung")['Employee_Names'].apply(lambda Employee_Names: ','.beitreten(Employee_Names))
drucken(df1)

Wenn der obige Code ausgeführt wird, wird die folgende Ausgabe angezeigt:

Werte in aufsteigender Reihenfolge sortieren

Verwenden Sie das groupby-Objekt in einem regulären Datenrahmen, indem Sie '.to_frame()' und dann reset_index() für die Neuindizierung verwenden. Spaltenwerte durch Aufrufen von sort_values() sortieren.

Beispiel

In diesem Beispiel sortieren wir das Alter des Mitarbeiters in aufsteigender Reihenfolge. Mit dem folgenden Codestück haben wir das 'Employee_Age' in aufsteigender Reihenfolge mit 'Employee_Names' abgerufen.

Pandas als pd importieren
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Employee_Names')['Employee_Age'].Summe().einrahmen().reset_index().sort_values(by='Employee_Age')
drucken(df1)

Verwendung von Aggregaten mit groupby

Es stehen eine Reihe von Funktionen oder Aggregationen zur Verfügung, die Sie auf Datengruppen anwenden können, wie count(), sum(), mean(), median(), mode(), std(), min(), max().

Beispiel

In diesem Beispiel haben wir eine 'count()'-Funktion mit groupby verwendet, um die Mitarbeiter zu zählen, die derselben 'Employee_city' angehören.

Pandas als pd importieren
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Employee_city').Anzahl()
drucken(df1)

Wie Sie in der folgenden Ausgabe sehen können, zählen Sie in den Spalten Designation, Employee_Names und Employee_Age Zahlen, die zu derselben Stadt gehören:

Daten visualisieren mit groupby

Durch die Verwendung der 'matplotlib importieren.pyplot' können Sie Ihre Daten in Grafiken visualisieren.

Beispiel

Hier visualisiert das folgende Beispiel das 'Employee_Age' mit 'Employee_Nmaes' aus dem gegebenen DataFrame unter Verwendung der groupby-Anweisung.

Pandas als pd importieren
Matplotlib importieren.pyplot als plt
Datenrahmen = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karatschi', 'Karatschi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf()
Datenrahmen.groupby('Employee_Names').Summe().plot(kind='bar')
plt.Show()

Beispiel

Um den gestapelten Graphen mit groupby zu zeichnen, drehen Sie 'stacked=true' und verwenden Sie den folgenden Code:

Pandas als pd importieren
Matplotlib importieren.pyplot als plt
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby(['Employee_city','Employee_Names']).Größe().entstapeln ().plot(kind='bar',stacked=True, fontsize='6')
plt.Show()

In der untenstehenden Grafik ist die Anzahl der gestapelten Mitarbeiter, die derselben Stadt angehören.

Ändern Sie den Spaltennamen mit der Gruppe nach

Sie können den aggregierten Spaltennamen auch wie folgt mit einem neuen geänderten Namen ändern:

Pandas als pd importieren
Matplotlib importieren.pyplot als plt
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby('Employee_Names')['Bezeichnung'].Summe().reset_index(name='Employee_Bezeichnung')
drucken(df1)

Im obigen Beispiel wird der Name 'Bezeichnung' in 'Angestellter_Bezeichnung' geändert.

Gruppieren nach Schlüssel oder Wert abrufen

Mit der groupby-Anweisung können Sie ähnliche Datensätze oder Werte aus dem Datenrahmen abrufen.

Beispiel

Im unten angegebenen Beispiel haben wir Gruppendaten basierend auf 'Bezeichnung'. Dann wird die Gruppe 'Personal' abgerufen, indem die .getgroup('Mitarbeiter').

Pandas als pd importieren
Matplotlib importieren.pyplot als plt
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karatschi', 'Karatschi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
Extract_value = df.groupby('Bezeichnung')
print(extract_value.get_group('Mitarbeiter'))

Das folgende Ergebnis wird im Ausgabefenster angezeigt:

Wert zur Gruppenliste hinzufügen

Ähnliche Daten können mit der groupby-Anweisung in Form einer Liste angezeigt werden. Gruppieren Sie zuerst die Daten basierend auf einer Bedingung. Durch Anwenden der Funktion können Sie diese Gruppe dann einfach in die Listen aufnehmen.

Beispiel

In diesem Beispiel haben wir ähnliche Datensätze in die Gruppenliste eingefügt. Alle Mitarbeiter werden nach 'Employee_city' in die Gruppe eingeteilt und dann durch Anwendung der 'Lambda'-Funktion diese Gruppe in Form einer Liste abgerufen.

Pandas als pd importieren
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1=df.groupby('Employee_city')['Employee_Names'].bewerben (lambda group_series: group_series.auflisten()).reset_index()
drucken(df1)

Verwendung der Transform-Funktion mit groupby

Die Mitarbeiter werden nach ihrem Alter gruppiert, diese Werte addiert und mit der Funktion 'Transformieren' wird eine neue Spalte in die Tabelle eingefügt:

Pandas als pd importieren
df = pd.Datenrahmen(
'Employee_Names':['Sam', 'Ali' , 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Bezeichnung':['Manager', 'Personal', 'IT-Beauftragter', 'IT-Beauftragter', 'HR', 'Personal', 'HR', 'Personal', 'Teamleiter'],
'Employee_city':['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Mitarbeiter_Alter':[60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df['sum']=df.groupby(['Employee_Names'])['Employee_Age'].transform('Summe')
drucken(df)

Fazit

Wir haben die verschiedenen Verwendungen von groupby-Anweisungen in diesem Artikel untersucht. Wir haben gezeigt, wie Sie die Daten in Gruppen aufteilen können und durch die Anwendung verschiedener Aggregationen oder Funktionen diese Gruppen einfach abrufen können.

Beste Spiele zum Spielen mit Handtracking
Oculus Quest hat kürzlich die großartige Idee des Hand-Trackings ohne Controller vorgestellt. Mit einer ständig steigenden Anzahl von Spielen und Akti...
So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...