So verwenden Sie Gruppen durch in Pandas Python

So verwenden Sie Gruppen durch in Pandas Python
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.