I denne artikel vil vi gå gennem de grundlæggende anvendelser af en gruppe efter funktion i pandas python. Alle kommandoer udføres på Pycharm-editoren.
Lad os diskutere gruppens hovedkoncept ved hjælp af medarbejderens data. Vi har oprettet en dataramme med nogle nyttige medarbejderoplysninger (Employee_Names, Designation, Employee_city, Age).
Strengkædning ved hjælp af Gruppér efter funktion
Ved hjælp af groupby-funktionen kan du sammenkæde strenge. Samme poster kan sammenføjes med ',' i en enkelt celle.
Eksempel
I det følgende eksempel har vi sorteret data baseret på medarbejdernes 'Betegnelse' kolonne og tilsluttet de ansatte, der har den samme betegnelse. Lambda-funktionen anvendes på 'Medarbejdernavn'.
importer pandaer som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Betegnelse") ['Employee_Names'].anvend (lambda Employee_Names: ','.Deltag (Medarbejdernavne))
udskrive (df1)
Når ovenstående kode udføres, vises følgende output:
Sortering af værdier i stigende rækkefølge
Brug groupby-objektet til en almindelig dataramme ved at ringe til '.to_frame () 'og brug derefter reset_index () til reindexing. Sorter kolonneværdier ved at kalde sort_values ().
Eksempel
I dette eksempel sorterer vi medarbejderens alder i stigende rækkefølge. Ved hjælp af følgende kode har vi hentet 'Employee_Age' i stigende rækkefølge med 'Employee_Names'.
importer pandaer som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Employee_Age'].sum().at indramme().reset_index ().sort_values (efter = 'Employee_Age')
udskrive (df1)
Brug af aggregater med groupby
Der er et antal funktioner eller aggregeringer til rådighed, som du kan anvende på datagrupper såsom count (), sum (), mean (), median (), mode (), std (), min (), max ().
Eksempel
I dette eksempel har vi brugt en 'count ()' - funktion med groupby til at tælle de ansatte, der hører til den samme 'Employee_city'.
importer pandaer som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Medarbejder_by').tælle()
udskrive (df1)
Som du kan se følgende output under kolonnerne Betegnelse, Medarbejdernavne og Medarbejderalder tæller tal, der hører til den samme by:
Visualiser data ved hjælp af groupby
Ved at bruge 'import matplotlib.pyplot ', kan du visualisere dine data i grafer.
Eksempel
Her visualiserer følgende eksempel 'Employee_Age' med 'Employee_Nmaes' fra den givne DataFrame ved hjælp af groupby-sætningen.
importer pandaer som pdimporter matplotlib.pyplot som plt
dataframe = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
dataframe.groupby ('Employee_Names').sum().plot (kind = 'bar')
plt.at vise()
Eksempel
For at plotte den stablede graf ved hjælp af groupby skal du dreje 'stacked = true' og bruge følgende kode:
importer pandaer som pdimporter matplotlib.pyplot som plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Employee_city', 'Employee_Names']).størrelse().unstack ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.at vise()
I nedenstående graf er antallet af stablede medarbejdere, der tilhører den samme by.
Skift kolonnenavn med gruppen efter
Du kan også ændre det samlede kolonnenavn med et nyt ændret navn som følger:
importer pandaer som pdimporter matplotlib.pyplot som plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Betegnelse'].sum().reset_index (name = 'Employee_Designation')
udskrive (df1)
I ovenstående eksempel ændres navnet 'Betegnelse' til 'Medarbejder_Designation'.
Hent gruppe efter nøgle eller værdi
Ved hjælp af groupby-sætningen kan du hente lignende poster eller værdier fra datarammen.
Eksempel
I nedenstående eksempel har vi gruppedata baseret på 'betegnelse'. Derefter hentes gruppen 'Staff' ved hjælp af .getgroup ('personale').
importer pandaer som pdimporter matplotlib.pyplot som plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
ekstraktværdi = df.groupby ('Betegnelse')
udskriv (ekstraktværdi.get_group ('personale'))
Følgende resultat vises i outputvinduet:
Tilføj værdi til gruppelisten
Lignende data kan vises i form af en liste ved hjælp af groupby-erklæringen. Gruppér først dataene baseret på en betingelse. Derefter ved at anvende funktionen kan du nemt placere denne gruppe på listerne.
Eksempel
I dette eksempel har vi indsat lignende poster i gruppelisten. Alle medarbejdere er opdelt i gruppen baseret på 'Employee_city', og derefter ved at anvende funktionen 'Lambda' hentes denne gruppe i form af en liste.
importer pandaer som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].anvende (lambda group_series: group_series.tolist ().reset_index ()
udskrive (df1)
Brug af Transform-funktionen med groupby
Medarbejderne er grupperet efter deres alder, disse værdier tilføjes sammen, og ved hjælp af funktionen 'transformer' tilføjes en ny kolonne i tabellen:
importer pandaer som pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'IT officer', 'IT officer', 'HR', 'Staff', 'HR', 'Staff', 'Team Lead'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Medarbejderalder': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.groupby (['Employee_Names']) ['Employee_Age'].transformere ('sum')
udskrive (df)
Konklusion
Vi har undersøgt de forskellige anvendelser af groupby-erklæring i denne artikel. Vi har vist, hvordan du kan opdele dataene i grupper, og ved at anvende forskellige sammenlægninger eller funktioner kan du nemt hente disse grupper.