pandaer

Hvordan bruke Group by i Pandas Python

Hvordan bruke Group by i Pandas Python
Pandagruppe etter funksjon brukes til å gruppere DataFrames-objekter eller kolonner basert på spesielle betingelser eller regler. Ved hjelp av groupby-funksjonen er datasettadministrasjonen enklere. Imidlertid kan alle relaterte poster ordnes i grupper. Ved hjelp av Pandas-biblioteket kan du implementere Pandas-gruppen etter funksjon for å gruppere dataene etter forskjellige typer variabler. De fleste utviklere brukte tre grunnleggende teknikker for gruppen etter funksjon. For det første, dele opp i hvilke data som deles inn i grupper basert på noen spesielle forhold. Bruk deretter visse funksjoner på disse gruppene. Til slutt kombinerer du utdataene i form av datastruktur.

I denne artikkelen vil vi gå gjennom de grunnleggende bruken av en gruppe etter funksjon i pandas python. Alle kommandoer kjøres på Pycharm-redigereren.

La oss diskutere hovedkonseptet til gruppen ved hjelp av de ansattes data. Vi har laget en dataramme med nyttige medarbeideropplysninger (ansatt_Navn, betegnelse, ansatt_stad, alder).

Strengsammenkobling ved hjelp av Gruppe etter funksjon

Ved hjelp av groupby-funksjonen kan du sammenkoble strenger. Samme poster kan slås sammen med ',' i en enkelt celle.

Eksempel

I det følgende eksemplet har vi sortert data basert på ansattes 'Betegnelse' -kolonne og sluttet seg til 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'],
'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 ("Betegnelse") ['Employee_Names'].gjelder (lambda Employee_Names: ','.bli med (Employee_Names))
skriv ut (df1)

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

Sortering av verdier i stigende rekkefølge

Bruk groupby-objektet til en vanlig dataramme 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 å bruke følgende kode, har vi hentet 'Employee_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'],
'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'].sum().å ramme inn().reset_index ().sort_values ​​(by = 'Employee_Age')
skriv ut (df1)

Bruk av aggregater med groupby

Det er en rekke funksjoner eller aggregeringer 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 'Employee_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'],
'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').telle()
skriv ut (df1)

Som du kan se følgende utdata, teller tall som tilhører samme by under kolonnene Betegnelse, Ansatte_Navn og Ansatt_Age:

Visualiser data ved hjelp av groupby

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

Eksempel

Her visualiserer følgende eksempel 'Employee_Age' med 'Employee_Nmaes' fra den gitte DataFrame ved å bruke groupby-setningen.

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'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
Dataramme.groupby ('Employee_Names').sum().tomt (kind = 'bar')
plt.vise fram()

Eksempel

For å plotte den stablede grafen ved hjelp av groupby, snu 'stacked = 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'],
'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']).størrelse().unstack ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.vise fram()

I nedenstående graf er antallet ansatte stablet som tilhører samme by.

Endre kolonnenavn med gruppen etter

Du kan også endre det samlede kolonnenavnet med et 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'],
'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') ['Betegnelse'].sum().reset_index (name = 'Employee_Designation')
skriv ut (df1)

I eksemplet ovenfor blir navnet 'Betegnelse' endret til 'Ansatt_Designasjon'.

Hent gruppe etter nøkkel eller verdi

Ved å bruke groupby-setningen kan du hente lignende poster eller verdier fra datarammen.

Eksempel

I eksemplet nedenfor har vi gruppedata basert på 'Betegnelse'. Deretter hentes gruppen 'Staff' 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'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
extract_value = df.groupby ('Betegnelse')
skriv ut (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-setningen. Først grupperer du dataene basert på en tilstand. Deretter, ved å bruke funksjonen, kan du enkelt sette denne gruppen i listene.

Eksempel

I dette eksemplet har vi satt inn lignende poster i gruppelisten. Alle ansatte er delt inn i gruppen basert på 'Employee_city', og 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'],
'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'].gjelder (lambda group_series: group_series.å liste opp()).reset_index ()
skriv ut (df1)

Bruk av Transform-funksjon med groupby

Ansatte er gruppert etter alder, disse verdiene er lagt sammen, og ved å bruke transformasjonsfunksjonen blir ny kolonne 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'],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Employee_Age': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['sum'] = df.groupby (['Employee_Names']) ['Employee_Age'].transformere ('sum')
skrive ut (df)

Konklusjon

Vi har utforsket de forskjellige bruksområdene fra groupby-uttalelser i denne artikkelen. Vi har vist hvordan du kan dele dataene i grupper, og ved å bruke forskjellige aggregasjoner eller funksjoner, kan du enkelt hente disse gruppene.

OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...
OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...