Hvordan bruke gruppe av i Pandas Python

Hvordan bruke gruppe av i Pandas Python
Pandas Group etter funksjon brukes til å gruppere DataFrames -objekter eller kolonner basert på bestemte forhold eller regler. Ved hjelp av Groupby -funksjonen er datasettstyringen enklere. Imidlertid kan alle relaterte poster ordnes i grupper. Ved hjelp av Pandas -biblioteket kan du implementere Pandas Group etter funksjon for å gruppere dataene i henhold til forskjellige typer variabler. De fleste utviklere brukte tre grunnleggende teknikker for gruppen etter funksjon. Først, deling der data deler seg inn i grupper basert på noen bestemte forhold. Bruk deretter visse funksjoner på disse gruppene. Til slutt kan du kombinere utgangen i form av datastruktur.

I denne artikkelen vil vi gå gjennom de grunnleggende bruksområdene til en gruppe etter funksjon i Pandas Python. Alle kommandoer blir utført på Pycharm -redigereren.

La oss diskutere hovedbegrepet til gruppen ved hjelp av ansattes data. Vi har opprettet en DataFrame med noen nyttige ansattedetaljer (Employee_Names, Betegnelse, Ansatt_city, alder).

Strengkonturasjon ved bruk av gruppe etter funksjon

Ved hjelp av Groupby -funksjonen kan du sammenkoble strenger. Samme poster kan kobles sammen med ',' i en enkelt celle.

Eksempel

I det følgende eksemplet har vi sortert data basert på de ansattes betegnelseskolonne og ble med de ansatte som har samme betegnelse. Lambda -funksjonen brukes på 'ansatte_navn'.

Importer pandaer som PD
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.Groupby ("Betegnelse") ['Employee_names'].Søk (Lambda Employee_Names: ','.Bli med (Employee_names)))
Print (DF1)

Når koden ovenfor utføres, vises følgende utgang:

Sortering av verdier i stigende rekkefølge

Bruk Groupby -objektet i et vanlig DataFrame ved å ringe '.to_frame () 'og bruk deretter reset_index () for reindeksering. Sorter kolonneverdier ved å ringe sort_values ​​().

Eksempel

I dette eksemplet vil vi sortere ansattes alder i stigende rekkefølge. Ved hjelp av følgende kode har vi hentet 'ansattes_age' i stigende rekkefølge med 'Employee_names'.

Importer pandaer som PD
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.Groupby ('Employee_names') ['Employee_age'].sum().å ramme inn().reset_index ().sort_values ​​(av = 'ansatt_age')
Print (DF1)

Bruk av aggregater med Groupby

Det er en rekke funksjoner eller aggregasjoner tilgjengelig som du kan bruke på datagrupper som Count (), Sum (), Mean (), Median (), Mode (), STD (), Min (), Max ().

Eksempel

I dette eksemplet har vi brukt en 'count ()' -funksjon med Groupby for å telle de ansatte som tilhører samme 'ansatt_city'.

Importer pandaer som PD
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.Groupby ('Employee_city').telle()
Print (DF1)

Som du kan se følgende utdata, under betegnelsen, medarbeidernavn og ansattes kolonner, teller tall som tilhører samme by:

Visualiser data ved bruk av Groupby

Ved å bruke 'import matplotlib.pyplot ', du kan visualisere dataene dine i grafer.

Eksempel

Her visualiserer følgende eksempel 'Employee_age' med 'Employee_nmaes' fra den gitte DataFrame ved å bruke Groupby -uttalelsen.

Importer pandaer som PD
Importer matplotlib.Pyplot som Plt
DataFrame = PD.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.CLF ()
Dataramme.Groupby ('Employee_names').sum().plot (snill = 'bar')
plt.forestilling()

Eksempel

For å plotte den stablede grafen ved hjelp av Groupby, vri den 'stablede = true' og bruk følgende kode:

Importer pandaer som PD
Importer matplotlib.Pyplot som Plt
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.Groupby (['Employee_city', 'Employee_names']).størrelse().Unstack ().plot (snill = 'bar', stablet = true, fontSize = '6')
plt.forestilling()

I den undergitte grafen er antall ansatte stablet som tilhører samme by.

Endre kolonnenavn med gruppen av

Du kan også endre det aggregerte kolonnenavnet med noe nytt modifisert navn som følger:

Importer pandaer som PD
Importer matplotlib.Pyplot som Plt
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.Groupby ('Employee_names') ['Betegnelse'].sum().RESET_INDEX (name = 'Employee_Designation')
Print (DF1)

I eksemplet ovenfor endres "betegnelsen" -navnet til 'Employee_Designation'.

Hente gruppe etter nøkkel eller verdi

Ved hjelp av Groupby -uttalelsen kan du hente lignende poster eller verdier fra DataFrame.

Eksempel

I det undergitte eksemplet har vi gruppedata basert på 'betegnelse'. Deretter hentes "personalet" -gruppen ved å bruke .getGroup ('Staff').

Importer pandaer som PD
Importer matplotlib.Pyplot som Plt
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
EXTRACT_VALUE = DF.Groupby ('Betegnelse')
print (extract_value.Get_Group ('Staff'))

Følgende resultat vises i utgangsvinduet:

Legg til verdi i gruppelisten

Lignende data kan vises i form av en liste ved å bruke Groupby -uttalelsen. Først grupperer dataene basert på en tilstand. Ved å bruke funksjonen kan du enkelt legge denne gruppen inn i listene.

Eksempel

I dette eksemplet har vi satt inn lignende poster i gruppelisten. Alle de ansatte er delt inn i gruppen basert på 'Employee_city', og deretter ved å bruke 'Lambda' -funksjonen, blir denne gruppen hentet i form av en liste.

Importer pandaer som PD
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.Groupby ('Employee_city') ['Employee_names'].Søk (lambda group_series: group_series.ramse opp()).reset_index ()
Print (DF1)

Bruk av transformasjonsfunksjon med Groupby

De ansatte er gruppert i henhold til deres alder, disse verdiene lagt sammen, og ved å bruke 'Transform' -funksjonen blir den nye kolonnen lagt til i tabellen:

Importer pandaer som PD
df = pd.Dataramme(
'Employee_names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
'Betegnelse': ['Manager', 'Staff', 'It Officer', 'It Officer', 'Hr', 'Staff', 'Hr', 'Staff', 'Team Lead'],
'Ansatt_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Ansatt_age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.Groupby (['Employee_names']) ['Employee_age'].Transform ('Sum')
trykk (DF)

Konklusjon

Vi har undersøkt de forskjellige bruken av Groupby -uttalelsen i denne artikkelen. Vi har vist hvordan du kan dele opp dataene i grupper, og ved å bruke forskjellige aggregeringer eller funksjoner, kan du enkelt hente disse gruppene.