pande

Kako uporabljati Group by v Pandas Python

Kako uporabljati Group by v Pandas Python
Pandas group by function se uporablja za razvrščanje predmetov ali stolpcev DataFrames na podlagi določenih pogojev ali pravil. S funkcijo groupby je upravljanje nabora podatkov lažje. Vse povezane zapise pa lahko razvrstimo v skupine. Z uporabo knjižnice Pandas lahko skupino Pandas implementirate po funkciji za razvrščanje podatkov glede na različne vrste spremenljivk. Večina razvijalcev je uporabila tri osnovne tehnike za skupino po funkcijah. Najprej razdelitev, pri kateri se podatki razdelijo v skupine glede na nekatere posebne pogoje. Nato za te skupine uporabite določene funkcije. Na koncu združite izhod v obliki podatkovne strukture.

V tem članku se bomo sprehodili skozi osnovne uporabe skupine po funkcijah v pandinem pythonu. Vsi ukazi se izvajajo v urejevalniku Pycharm.

Pogovorimo se o glavnem konceptu skupine s pomočjo podatkov zaposlenega. Ustvarili smo podatkovni okvir z nekaj uporabnimi podrobnostmi o zaposlenem (Employee_Names, Designation, Employee_city, Age).

Združevanje nizov z uporabo skupine po funkciji

S funkcijo groupby lahko združite nize. Iste zapise lahko v eni celici združite z ','.

Primer

V naslednjem primeru smo podatke razvrstili na podlagi stolpca 'Oznaka' zaposlenih in se pridružili zaposlenim, ki imajo enako oznako. Lambda funkcija je uporabljena na 'Employees_Name'.

uvozi pande kot pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Zaposleni_Starost': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Oznaka") ['Employee_Names'].prijavi (lambda Employee_Names: ','.pridruži se (Employee_Names))
tiskanje (df1)

Ko se zgornja koda izvede, se prikaže naslednji izhod:

Razvrščanje vrednosti v naraščajočem vrstnem redu

Uporabite objekt groupby v običajni podatkovni okvir tako, da pokličete '.to_frame () 'in nato uporabite reset_index () za ponovno indeksiranje. Razvrstite vrednosti stolpcev tako, da pokličete sort_values ​​().

Primer

V tem primeru bomo starost zaposlenega razvrstili po naraščajočem vrstnem redu. Z uporabo naslednjega dela kode smo prišli do 'Employee_Age' v naraščajočem vrstnem redu z 'Employee_Names'.

uvozi pande kot pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Zaposleni_Starost': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Employee_Age'].vsota ().to_frame ().reset_index ().razvrsti_vrednosti (po = 'Starost_Starost')
tiskanje (df1)

Uporaba agregatov z groupby

Na voljo so številne funkcije ali združevanja, ki jih lahko uporabite za podatkovne skupine, kot so count (), sum (), mean (), mediana (), mode (), std (), min (), max ().

Primer

V tem primeru smo uporabili funkcijo 'count ()' s groupby za štetje zaposlenih, ki pripadajo istemu 'Employee_city'.

uvozi pande kot pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Zaposleni_Starost': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city').štetje ()
tiskanje (df1)

Kot vidite naslednji izhod, v stolpcih Oznaka, Imena zaposlenih in Zaposleni_Age preštejte številke, ki pripadajo istemu mestu:

Vizualizirajte podatke s pomočjo groupby

Z uporabo 'import matplotlib.pyplot ', lahko svoje podatke vizualizirate v grafe.

Primer

Tukaj naslednji primer vizualizira 'Employee_Age' z 'Employee_Nmaes' iz danega DataFrame s pomočjo stavka groupby.

uvozi pande kot pd
uvozi matplotlib.pyplot kot plt
podatkovni okvir = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Starost zaposlenega': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
podatkovni okvir.groupby ('Employee_Names').vsota ().ploskev (vrsta = 'bar')
plt.pokaži ()

Primer

Če želite načrtovati zloženi graf z uporabo groupby, obrnite 'stacked = true' in uporabite naslednjo kodo:

uvozi pande kot pd
uvozi matplotlib.pyplot kot plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Starost zaposlenega': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Employee_city', 'Employee_Names']).velikost ().odstrani ().ploskev (kind = 'bar', stacked = True, fontsize = '6')
plt.pokaži ()

Na spodnjem grafu je število zapostavljenih zaposlenih, ki pripadajo istemu mestu.

Spremenite ime stolpca s skupino za

Združeno ime stolpca lahko spremenite tudi z novim spremenjenim imenom, kot sledi:

uvozi pande kot pd
uvozi matplotlib.pyplot kot plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Starost zaposlenega': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Oznaka'].vsota ().reset_index (name = 'Zaposleni_Designacija')
tiskanje (df1)

V zgornjem primeru se ime "Oznaka" spremeni v "Zaposleni_Designacija".

Pridobi skupino po ključu ali vrednosti

Z uporabo stavka groupby lahko iz podatkovnega okvira pridobite podobne zapise ali vrednosti.

Primer

V spodnjem primeru imamo podatke o skupinah, ki temeljijo na 'Oznaka'. Nato je skupina "Osebje" pridobljena s pomočjo .getgroup ('Osebje').

uvozi pande kot pd
uvozi matplotlib.pyplot kot plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Zaposleni_Starost': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
izvleček_vrednost = df.groupby ("Oznaka")
print (izvleček_vrednost.get_group ('Osebje'))

V izhodnem oknu se prikaže naslednji rezultat:

Dodaj vrednost na seznam skupin

Podobne podatke lahko prikažemo v obliki seznama z uporabo izjave groupby. Najprej podatke združite na podlagi stanja. Nato lahko z uporabo funkcije to skupino enostavno uvrstite na sezname.

Primer

V tem primeru smo na seznam skupin vstavili podobne zapise. Vsi zaposleni so razdeljeni v skupino na podlagi 'Employee_city', nato pa se z uporabo funkcije 'Lambda' ta skupina pridobi v obliki seznama.

uvozi pande kot pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Starost zaposlenega': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].uporabi (lambda group_series: group_series.našteti()).reset_index ()
tiskanje (df1)

Uporaba funkcije Transform s groupby

Zaposleni so razvrščeni glede na njihovo starost, te vrednosti se seštejejo, z uporabo funkcije 'preoblikovanje' pa se v tabelo doda nov stolpec:

uvozi pande kot pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Oznaka“: [„Manager“, „Staff“, „IT referent“, „IT referent“, „HR“, „Staff“, „HR“, „Staff“, „Team Lead“],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
'Starost zaposlenega': [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['vsota'] = df.groupby (['Employee_Names']) ['Employee_Age'].transformiraj ('vsota')
natisni (df)

Zaključek

V tem članku smo raziskali različne načine uporabe izjave groupby. Pokazali smo, kako lahko podatke razdelite v skupine, z uporabo različnih združevanj ali funkcij pa lahko te skupine enostavno pridobite.

S pomočjo gumba X-Mouse Button Control različno prilagodite gumbe miške za različno programsko opremo
Mogoče potrebujete orodje, ki bi lahko spremenilo nadzor miške z vsako aplikacijo, ki jo uporabljate. V tem primeru lahko preizkusite aplikacijo z ime...
Microsoft Sculpt Touch Wireless Mouse Review
Pred kratkim sem prebral o Microsoftov kiparski dotik brezžično miško in se odločil za nakup. Potem ko sem ga nekaj časa uporabljal, sem se odločil, d...
Zaslonska sledilna ploščica in kazalec miške AppyMouse za tablične računalnike Windows
Uporabniki tabličnih računalnikov pogosto zgrešijo miškin kazalec, še posebej kadar običajno uporabljajo prenosne računalnike. Pametni telefoni in tab...