pandad

Kuidas kasutada gruppi Pandas Pythonis

Kuidas kasutada gruppi Pandas Pythonis
Funktsioonide järgi rühmitusi Pandas kasutatakse objektide või veergude rühmitamiseks DataFrames vastavalt konkreetsetele tingimustele või reeglitele. Groupby funktsiooni kasutades on andmekogumi haldamine lihtsam. Kõiki seotud kirjeid saab siiski gruppidesse paigutada. Pandateegi abil saate funktsiooni Pandas rühma juurutades andmeid rühmitada erinevat tüüpi muutujate järgi. Enamik arendajaid kasutas funktsiooni järgi grupi jaoks kolme põhitehnikat. Esiteks jagamine, milles andmed jagunevad rühmadesse teatud tingimuste alusel. Seejärel rakendage nendele rühmadele teatud funktsioonid. Lõpuks ühendage väljund andmestruktuuri kujul.

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 pd
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 ("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 pd
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öö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 pd
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öö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 pd
import 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 pd
import 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 pd
import 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 pd
import 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 pd
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 ('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 pd
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 ['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.

OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...