Selles artiklis käsitleme funktsiooni järgi grupi põhikasutusi panda pythonis. Kõik käsud täidetakse redaktoris Pycharm.
Arutame töötaja andmete abil läbi rühma põhimõiste. Oleme loonud andmekaadri koos kasulike töötajate üksikasjadega (töötaja nimed, määramine, töötaja_linn, vanus).
Stringi liitmine grupi funktsiooni järgi
Funktsiooni groupby abil saate stringid kokku liita. Samu kirjeid saab ühendada tähega ', ühes lahtris.
Näide
Järgmises näites oleme andmed sortinud töötajate veeru „Määramine” põhjal ja liitunud sama tähistusega töötajatega. Funktsioonile lambda rakendatakse 'Employees_Name'.
impordi pandad kui pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Määramine") ['Employee_Names'].taotlema (lambda Employee_Names: ','.liitu (Employee_Names))
print (df1)
Kui ülaltoodud kood on täidetud, kuvatakse järgmine väljund:
Väärtuste sortimine kasvavas järjekorras
Kasutage objektiga groupby tavaliseks andmekaadriks helistades.to_frame () 'ja seejärel kasutage uuestiindeksimiseks reset_index (). Sorteeri veeru väärtused, kutsudes sort_values ().
Näide
Selles näites sorteerime töötaja vanuse kasvavas järjekorras. Kasutades järgmist kooditükki, oleme leidnud 'Employee_Age' kasvavas järjekorras koos 'Employee_Names'.
impordi pandad kui pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Töötajanimed') ['Töötaja_vanus'].summa ().to_frame ().reset_index ().sort_values (by = 'Töötaja vanus')
print (df1)
Agregaatide kasutamine rühmaga
Saadaval on mitu funktsiooni või liitmist, mida saate rakendada andmegruppidele, näiteks arv (), summa (), keskmine (), mediaan (), režiim (), std (), min (), max ().
Näide
Selles näites oleme kasutanud funktsiooni 'count ()' koos grupiga, et lugeda töötajaid, kes kuuluvad samasse 'Employee_city'.
impordi pandad kui pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Töötaja_linn').loenda ()
print (df1)
Nagu näete järgmist väljundit, loendage veergudes Määramine, Töötajate nimed ja Töötaja_Age samasse linna kuuluvad numbrid:
Visualiseerige andmeid grupi abil
Kasutades 'import matplotlib.pyplot ', saate oma andmeid graafikutena visualiseerida.
Näide
Järgmine näide visualiseerib antud töötaja DataFrame'i 'Employee_Age' väärtusega 'Employee_Nmaes', kasutades groupby lauset.
impordi pandad kui pdimport matplotlib.püplot nagu plt
andmekaader = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
andmekaader.groupby ("Töötajate nimed").summa ().joonistus (kind = 'bar')
plt.näita ()
Näide
Virnastatud graafiku grupeerimise abil graafiku joonistamiseks keerake "stacked = true" ja kasutage järgmist koodi:
impordi pandad kui pdimport matplotlib.püplot nagu plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Töötaja_linn', 'Töötajanimed']).suurus ().lahti pakkima ().joonis (kind = 'bar', virnastatud = True, fontsize = '6')
plt.näita ()
Allpool toodud graafikul on virnastatud töötajate arv, kes kuuluvad samasse linna.
Muutke veeru nime grupiga
Koondatud veeru nime saate muuta ka mõne uue muudetud nimega järgmiselt:
impordi pandad kui pdimport matplotlib.püplot nagu plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Töötajate nimed') ['Määramine'].summa ().reset_index (nimi = 'Töötaja_disignatsioon')
print (df1)
Ülaltoodud näites on nimetus „Määramine” muudetud nimeks „Töötaja_määramine”.
Too rühm võtme või väärtuse järgi
Groupby-lause abil saate sarnaseid kirjeid või väärtusi andmeraamist leida.
Näide
Allpool toodud näites on meil grupiandmed, mis põhinevad jaotisel. Seejärel leitakse rühm "Töötajad", kasutades .getgroup ('töötajad').
impordi pandad kui pdimport matplotlib.püplot nagu plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
väljavõte_väärtus = df.groupby ("tähis")
print (väljavõte_väärtus.get_group ('töötajad'))
Väljundiaknas kuvatakse järgmine tulemus:
Lisage väärtus rühma loendisse
Sarnaseid andmeid saab kuvada loendi vormis, kasutades grupi avaldust. Esiteks rühmitage andmed tingimuse alusel. Seejärel saate funktsiooni rakendades selle rühma hõlpsalt loenditesse lisada.
Näide
Selles näites oleme lisanud sarnased kirjed rühmaloendisse. Kõik töötajad on jaotatud gruppi „Töötajate linn” põhjal ja seejärel funktsiooni „Lambda” rakendades leitakse see rühm loendi kujul.
impordi pandad kui pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].Rakenda (lambda grupi seeria: grupi seeria.loetlema()).reset_index ()
print (df1)
Funktsiooni Transform kasutamine grupiga
Töötajad on rühmitatud vastavalt nende vanusele, need väärtused liidetakse ja funktsiooni "muundamine" abil lisatakse tabelisse uus veerg:
impordi pandad kui pddf = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
„Nimetus”: [„juhataja”, „personal”, „IT-ametnik”, „IT-ametnik”, „HR”, „personal”, „HR”, „personal”, „meeskonna juht”],
'Employee_city': ['Karachi', 'Karachi', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
„Töötaja vanus”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['summa'] = df.groupby (['Employee_Names']) ['Employee_Age'].muundama ('summa')
print (df)
Järeldus
Oleme selles artiklis uurinud rühmapõhise avalduse erinevaid kasutusviise. Oleme näidanud, kuidas saate andmeid rühmadesse jagada, ja erinevaid liitmisi või funktsioone rakendades saate need rühmad hõlpsasti kätte saada.