Pandas Group By Function wird zum Gruppieren von DataFrames -Objekten oder -spalten anhand bestimmter Bedingungen oder Regeln verwendet. Mit der Gruppe GroupBy ist die Datensatzverwaltung einfacher. Alle verwandten Aufzeichnungen können jedoch in Gruppen eingerichtet 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 Gruppe nach Funktion. Erstens die Aufteilung, in 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 von Datenstruktur.
In diesem Artikel werden wir die grundlegenden Verwendungen einer Gruppe durch Funktion in Pandas Python durchlaufen. Alle Befehle werden im Pycharm -Editor ausgeführt.
Lassen Sie uns das Hauptkonzept der Gruppe mithilfe der Daten des Mitarbeiters diskutieren. Wir haben einen Datenrahmen mit einigen nützlichen Mitarbeiterdetails erstellt (Mitarbeiter_Names, Bezeichnung, Mitarbeiter_City, Alter).
String -Verkettung unter Verwendung von Gruppe für Funktion
Mit der GroupBy -Funktion können Sie Strings verkettet. Dieselben Datensätze können in einer einzelnen Zelle mit ',' verbunden werden.
Beispiel
Im folgenden Beispiel haben wir Daten basierend auf der Bezeichnung der Mitarbeiter sortiert und sich den Mitarbeitern angeschlossen, die die gleiche Bezeichnung haben. Die Lambda -Funktion wird unter 'powers_name' angewendet.
Pandas als PD importieren
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ("Bezeichnung") ['Employee_Names'].bewerben (Lambda Employee_names: ','.join (Employee_names))
drucken (df1)
Wenn der obige Code ausgeführt wird, wird die folgende Ausgabe angezeigt:
Werte in einer aufsteigenden Reihenfolge sortieren
Verwenden Sie das GroupBy -Objekt in einem regulären Datenrahmen, indem Sie aufrufen '.to_frame () 'und dann reset_index () für die Reindexing verwenden. Sortieren Sie die Spaltenwerte, indem Sie sort_values () aufrufen.
Beispiel
In diesem Beispiel werden wir das Alter des Mitarbeiters in aufsteigender Reihenfolge sortieren. Mit dem folgenden Code haben wir die 'Employee_age' in aufsteigender Reihenfolge mit 'Employee_Names' abgerufen.
Pandas als PD importieren
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [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 für Datengruppen wie count (), sum (), median (), median (), modus (), std (), min (), max () anwenden können.
Beispiel
In diesem Beispiel haben wir mit GroupBy eine "count ()" -Funktion verwendet, um die Mitarbeiter zu zählen, die zu demselben "Employee_City" gehören, zählen.
Pandas als PD importieren
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_City').zählen()
drucken (df1)
Wie Sie die folgende Ausgabe sehen können, zählen Sie unter den Spalten der Bezeichnung, Mitarbeiter_Names und Mitarbeiternamen und Mitarbeiternamen, die zur gleichen Stadt gehören:
Visualisieren Sie Daten mit GroupBy
Durch Verwendung des 'Importierens matplotlib.Pyplot 'können Ihre Daten in Diagramme visualisieren.
Beispiel
Das folgende Beispiel visualisiert hier die 'Employee_age' mit 'Employee_NMAES' aus dem angegebenen Datenrahmen mithilfe der GroupBy -Anweisung.
Pandas als PD importieren
Matplotlib importieren.Pyplot als PLT
DataFrame = Pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
PLT.CLF ()
Datenrahmen.GroupBy ('Employee_Names').Summe().Diagramm (Kind = 'Bar')
PLT.zeigen()
Beispiel
Um das gestapelte Diagramm mit GroupBy zu zeichnen, drehen Sie den "stacked = true" und verwenden Sie den folgenden Code:
Pandas als PD importieren
Matplotlib importieren.Pyplot als PLT
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.GroupBy (['Employee_City', 'Employee_Names']).Größe().stapeln ().Diagramm (sort = 'bar', stapeled = true, fontsize = '6')
PLT.zeigen()
Im untergegebenen Diagramm stapelten sich die Anzahl der Mitarbeiter, die derselben Stadt angehören.
Ändern Sie den Spaltennamen mit der Gruppe von
Sie können auch den aggregierten Spaltennamen mit einem neuen geänderten Namen wie folgt ändern:
Pandas als PD importieren
Matplotlib importieren.Pyplot als PLT
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_Names') ['Bezeichnung'].Summe().reset_index (name = 'Employee_Designation'))
drucken (df1)
Im obigen Beispiel wird der Name "Bezeichnung" in "Employee_Designation" geändert.
Gruppe nach Schlüssel oder Wert abrufen
Mit der Anweisung GroupBy können Sie ähnliche Datensätze oder Werte aus dem DataFrame abrufen.
Beispiel
Im folgenden Beispiel haben wir Gruppendaten basierend auf der Bezeichnung "Bezeichnung". Dann wird die Gruppe "Stab" mit der Verwendung der verwendet .Getgroup ('Staff').
Pandas als PD importieren
Matplotlib importieren.Pyplot als PLT
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.GroupBy ('Bezeichnung')
print (extract_value.get_group ('Staff'))
Das folgende Ergebnis wird im Ausgangsfenster angezeigt:
Mehrwert in die Gruppenliste hinzufügen
Ähnliche Daten können in Form einer Liste mithilfe der Gruppenby -Anweisung angezeigt werden. Gruppieren Sie zunächst die Daten basierend auf einer Bedingung. Wenn Sie die Funktion anwenden, können Sie diese Gruppe einfach in die Listen einfügen.
Beispiel
In diesem Beispiel haben wir ähnliche Datensätze in die Gruppenliste eingefügt. Alle Mitarbeiter werden basierend auf "Employee_City" in die Gruppe aufgeteilt und dann durch Anwendung der Funktion "Lambda" wird diese Gruppe in Form einer Liste abgerufen.
Pandas als PD importieren
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.GroupBy ('Employee_City') ['Employee_Names'].Bewerben Sie (Lambda Group_Series: Group_Series.auflisten()).reset_index ()
drucken (df1)
Verwendung der Transformationsfunktion mit Groupby
Die Mitarbeiter werden nach ihrem Alter gruppiert, diese Werte addiert und die neue Spalte "Transform" -Funktion werden in der Tabelle hinzugefügt:
Pandas als PD importieren
df = pd.DataFrame (
"Employee_Names": ["Sam", "Ali", "Umar", "Raees", "Mahwish", "Hania", "Mirha", "Maria", "Hamza"],
"Bezeichnung": ["Manager", "Staff", "IT Officer", "IT Officer", "HR", "Staff", "HR", "Staff", "Team Lead"],
"Employee_City": ["Karachi", "Karachi", "Islamabad", "Islamabad", "Quetta", "Lahore", "Faislabad", "Lahore", "Islamabad"],
'Employee_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.GroupBy (['Employee_Names']) ['Employee_age'].Transformation ('Summe')
Druck (df)
Abschluss
In diesem Artikel haben wir die unterschiedlichen Verwendungen der Gruppen -Erklärung untersucht. Wir haben gezeigt, wie Sie die Daten in Gruppen einteilen können, und durch die Anwendung verschiedener Aggregationen oder Funktionen können Sie diese Gruppen problemlos abrufen.