I den här artikeln går vi igenom de grundläggande användningarna av en grupp efter funktion i pandas python. Alla kommandon körs på Pycharm-redigeraren.
Låt oss diskutera gruppens huvudkoncept med hjälp av medarbetarens data. Vi har skapat en dataram med användbara information om anställda (anställda_namn, beteckning, anställd_stad, ålder).
Strängsammankoppling med grupp efter funktion
Med gruppby-funktionen kan du sammanfoga strängar. Samma poster kan förenas med ',' i en enda cell.
Exempel
I följande exempel har vi sorterat data baserat på de anställdas beteckningskolumn och gått med i de anställda som har samma beteckning. Lambda-funktionen tillämpas på 'Anställda_namn'.
importera pandor som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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 ("Beteckning") ['Employee_Names'].applicera (lambda Employee_Names: ','.gå med (anställda_namn))
skriva ut (df1)
När koden ovan körs visas följande utdata:
Sortera värden i stigande ordning
Använd groupby-objektet i en vanlig dataram genom att ringa '.to_frame () 'och använd sedan reset_index () för reindexering. Sortera kolumnvärden genom att anropa sort_values ().
Exempel
I det här exemplet sorterar vi anställdens ålder i stigande ordning. Med hjälp av följande kod har vi hämtat 'Employee_Age' i stigande ordning med 'Employee_Names'.
importera pandor som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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'].belopp().att rama in().reset_index ().sort_values (by = 'Employee_Age')
skriva ut (df1)
Användning av aggregat med groupby
Det finns ett antal funktioner eller aggregeringar tillgängliga som du kan använda för datagrupper som räkna (), sum (), medelvärde (), median (), läge (), std (), min (), max ().
Exempel
I det här exemplet har vi använt en "count ()" - funktion med groupby för att räkna de anställda som tillhör samma "Employee_city".
importera pandor som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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').räkna()
skriva ut (df1)
Som du kan se följande utdata räknar du siffror som tillhör samma stad under kolumnerna Benämning, Anställd_Namn och Anställd_Age:
Visualisera data med groupby
Genom att använda 'importera matplotlib.pyplot ', kan du visualisera dina data i grafer.
Exempel
Här visualiserar följande exempel 'Employee_Age' med 'Employee_Nmaes' från den givna DataFrame med hjälp av groupby-uttalandet.
importera pandor som pdimportera matplotlib.pyplot som plt
dataframe = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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 ()
dataframe.groupby ('Employee_Names').belopp().tomt (kind = 'bar')
plt.show()
Exempel
För att plotta den staplade grafen med groupby, vrid 'stacked = true' och använd följande kod:
importera pandor som pdimportera matplotlib.pyplot som plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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']).storlek().unstack ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.show()
I nedanstående diagram visas antalet staplade anställda som tillhör samma stad.
Ändra kolumnnamn med gruppen efter
Du kan också ändra det aggregerade kolumnnamnet med något nytt modifierat namn enligt följande:
importera pandor som pdimportera matplotlib.pyplot som plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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') ['Benämning'].belopp().reset_index (name = 'Employee_Designation')
skriva ut (df1)
I exemplet ovan ändras namnet 'Beteckning' till 'Anställd_Designation'.
Hämta grupp efter nyckel eller värde
Med gruppby-uttalandet kan du hämta liknande poster eller värden från dataramen.
Exempel
I nedanstående exempel har vi gruppdata baserade på 'Beteckning'. Därefter hämtas gruppen 'Personal' med hjälp av .getgroup ('Personal').
importera pandor som pdimportera matplotlib.pyplot som plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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]
)
extraheringsvärde = df.groupby ('Beteckning')
skriva ut (extraheringsvärde.get_group ('Personal'))
Följande resultat visas i utgångsfönstret:
Lägg till värde i grupplistan
Liknande data kan visas i form av en lista med hjälp av gruppby-uttalandet. Gruppera först data baserat på ett villkor. Genom att tillämpa funktionen kan du sedan enkelt placera den här gruppen i listorna.
Exempel
I det här exemplet har vi lagt in liknande poster i grupplistan. Alla anställda är indelade i gruppen baserat på 'Employee_city' och sedan genom att använda 'Lambda' -funktionen, hämtas denna grupp i form av en lista.
importera pandor som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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'].tillämpa (lambda group_series: group_series.att lista()).reset_index ()
skriva ut (df1)
Användning av Transform-funktionen med groupby
De anställda grupperas efter deras ålder, dessa värden läggs ihop, och med hjälp av funktionen 'transform' läggs en ny kolumn till i tabellen:
importera pandor som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Benämning': ['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 ['summa'] = df.groupby (['Employee_Names']) ['Employee_Age'].förvandla ('summa')
skriva ut (df)
Slutsats
Vi har utforskat de olika användningarna av groupby-uttalanden i den här artikeln. Vi har visat hur du kan dela in data i grupper, och genom att använda olika aggregeringar eller funktioner kan du enkelt hämta dessa grupper.