pandor

Hur man använder Group by i Pandas Python

Hur man använder Group by i Pandas Python
Pandagrupp efter funktion används för att gruppera DataFrames-objekt eller kolumner baserat på särskilda villkor eller regler. Med gruppby-funktionen är hanteringen av dataset enklare. Alla relaterade poster kan dock ordnas i grupper. Med hjälp av Pandas-biblioteket kan du implementera Pandas-gruppen efter funktion för att gruppera data enligt olika typer av variabler. De flesta utvecklare använde tre grundläggande tekniker för gruppen efter funktion. Först delning där data delas in i grupper baserat på vissa speciella förhållanden. Använd sedan vissa funktioner på dessa grupper. I slutändan kombinerar du utdata i form av datastruktur.

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 pd
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 ("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 pd
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') ['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 pd
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_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 pd
importera 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 pd
importera 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 pd
importera 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 pd
importera 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 pd
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_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 pd
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 ['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.

Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...