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 importierendf = 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 importierendf = 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 importierendf = 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 importierenMatplotlib 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 importierenMatplotlib 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 importierenMatplotlib 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 importierenMatplotlib 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 importierendf = 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 importierendf = 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.