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 pddf = 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 pddf = 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 pddf = 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 pduvozi 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 pduvozi 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 pduvozi 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 pduvozi 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 pddf = 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 pddf = 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.