pandaer

Sådan bruges Group by i Pandas Python

Sådan bruges Group by i Pandas Python
Pandas gruppe efter funktion bruges til at gruppere DataFrames objekter eller kolonner baseret på bestemte betingelser eller regler. Ved hjælp af groupby-funktionen er datasættet lettere. Dog kan alle relaterede poster arrangeres i grupper. Ved hjælp af Pandas-biblioteket kan du implementere Pandas-gruppen efter funktion til at gruppere dataene efter forskellige typer variabler. De fleste udviklere brugte tre grundlæggende teknikker til gruppen efter funktion. For det første opdeling, i hvilken data opdeles i grupper baseret på nogle særlige forhold. Anvend derefter visse funktioner i disse grupper. I sidste ende kombinerer du output i form af datastruktur.

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

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...