pandos

Kaip naudoti grupę pagal „Pandas Python“

Kaip naudoti grupę pagal „Pandas Python“
„Pandos“ grupavimas pagal funkciją naudojamas „DataFrames“ objektų ar stulpelių grupavimui pagal konkrečias sąlygas ar taisykles. Naudojant grupių funkciją, duomenų rinkinį lengviau valdyti. Tačiau visus susijusius įrašus galima suskirstyti į grupes. Naudodamiesi „Pandas“ biblioteka, galite įdiegti grupę „Pandas“ pagal funkciją, kad duomenys būtų sugrupuoti pagal įvairius kintamuosius. Dauguma kūrėjų grupei pagal funkciją naudojo tris pagrindinius metodus. Pirma, padalijimas, kuriame duomenys dalijami į grupes, atsižvelgiant į tam tikras sąlygas. Tada šioms grupėms pritaikykite tam tikras funkcijas. Galų gale sujunkite išvestį duomenų struktūros pavidalu.

Šiame straipsnyje mes apžvelgsime pagrindinius grupės pagal funkciją naudojimo būdus pandos pitone. Visos komandos vykdomos „Pycharm“ redaktoriuje.

Aptarkime pagrindinę grupės sampratą pasitelkdami darbuotojo duomenis. Sukūrėme duomenų rėmelį su naudinga darbuotojų informacija (darbuotojo vardai, paskirtis, darbuotojo miestas, amžius).

Styginių sujungimas naudojant grupę pagal funkciją

Naudodami „groupby“ funkciją, galite susieti eilutes. Tie patys įrašai gali būti sujungti su „,“ viename langelyje.

Pavyzdys

Šiame pavyzdyje mes surūšiavome duomenis pagal darbuotojų stulpelį „Paskyrimas“ ir prisijungėme prie to paties paskyrimo darbuotojų. „Lambda“ funkcija taikoma „Employees_Name“.

importuoti pandas kaip pd
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„vadovas“, „personalas“, „IT pareigūnas“, „IT pareigūnas“, „žmogiškasis personalas“, „personalas“, „HR“, „personalas“, „komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby („Paskyrimas“) ['Darbuotojo vardai'].kreiptis (lambda Darbuotojo Vardai: ','.prisijungti (darbuotojo vardai))
spausdinti (df1)

Vykdžius aukščiau nurodytą kodą, rodomas šis išvestis:

Vertybių rūšiavimas didėjimo tvarka

Naudokite objektą groupby į įprastą duomenų kadrą, skambindami '.to_frame () “ir tada naudokite reset_index () reindeksavimui. Rūšiuoti stulpelių vertes, iškviečiant rūšiavimo_ reikšmes ().

Pavyzdys

Šiame pavyzdyje mes surūšiuosime Darbuotojo amžių didėjimo tvarka. Naudodami šį kodo fragmentą, gavome „Employee_Age“ didėjimo tvarka su „Employee_Names“.

importuoti pandas kaip pd
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„Vadovas“, „Darbuotojai“, „IT pareigūnas“, „IT pareigūnas“, „HR“, „Darbuotojai“, „HR“, „Darbuotojai“, „Komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Darbuotojo vardai') ['Darbuotojo amžius'].suma().įrėminti().reset_index ().rūšiuoti_ vertės (pagal = 'Darbuotojo amžius')
spausdinti (df1)

Agregatų naudojimas su grupe

Yra daugybė funkcijų ar agregatų, kuriuos galite pritaikyti duomenų grupėse, pvz., Skaičius (), suma (), vidurkis (), mediana (), režimas (), standartinis (), min (), maks ().

Pavyzdys

Šiame pavyzdyje mes naudojome funkciją „count ()“ su grupe, kad suskaičiuotume darbuotojus, priklausančius tam pačiam „Employee_city“.

importuoti pandas kaip pd
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„vadovas“, „personalas“, „IT pareigūnas“, „IT pareigūnas“, „žmogiškasis personalas“, „personalas“, „HR“, „personalas“, „komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Darbuotojo miestas').suskaičiuoti ()
spausdinti (df1)

Kaip matote šį išvestį, stulpeliuose Pavadinimas, Darbuotojų vardai ir Darbuotojų amžius suskaičiuokite tam pačiam miestui priklausančius skaičius:

Vizualizuokite duomenis naudodami grupę

Naudojant „import matplotlib.pyplot ', galite vizualizuoti savo duomenis grafikais.

Pavyzdys

Čia pateiktas pavyzdys vaizduoja „Employee_Age“ su „Employee_Nmaes“ iš nurodyto „DataFrame“, naudodamasis sakiniu groupby.

importuoti pandas kaip pd
importuoti matplotlib.pyplotas kaip plt
duomenų rėmelis = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„vadovas“, „personalas“, „IT pareigūnas“, „IT pareigūnas“, „žmogiškasis personalas“, „personalas“, „HR“, „personalas“, „komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
duomenų rėmelis.groupby („Darbuotojo vardai“).suma().siužetas (rūšis = 'baras')
plt.Rodyti()

Pavyzdys

Norėdami braižyti sukrautą diagramą naudodami groupby, pasukite „stacked = true“ ir naudokite šį kodą:

importuoti pandas kaip pd
importuoti matplotlib.pyplotas kaip plt
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„Vadovas“, „Darbuotojai“, „IT pareigūnas“, „IT pareigūnas“, „HR“, „Darbuotojai“, „HR“, „Darbuotojai“, „Komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Employee_city', 'Employee_Names']).dydis ().nukrauti ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.Rodyti()

Žemiau pateiktoje diagramoje sukauptų darbuotojų, priklausančių tam pačiam miestui, skaičius.

Pakeiskite stulpelio pavadinimą pagal grupę

Taip pat galite pakeisti suvestinį stulpelio pavadinimą nauju pakeistu pavadinimu:

importuoti pandas kaip pd
importuoti matplotlib.pyplotas kaip plt
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„Vadovas“, „Darbuotojai“, „IT pareigūnas“, „IT pareigūnas“, „HR“, „Darbuotojai“, „HR“, „Darbuotojai“, „Komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Darbuotojo vardai') ['Paskyrimas'].suma().reset_index (vardas = 'Darbuotojo_paskyrimas')
spausdinti (df1)

Ankstesniame pavyzdyje pavadinimas „Paskirtis“ pakeičiamas į „Darbuotojo nurodymas“.

Gauti grupę pagal raktą ar vertę

Naudodami „groupby“ sakinį, galite iš duomenų kadro gauti panašius įrašus ar reikšmes.

Pavyzdys

Toliau pateiktame pavyzdyje mes turime grupės duomenis, pagrįstus „Paskyrimu“. Tada „Personalo“ grupė gaunama naudojant .getgroup („Personalas“).

importuoti pandas kaip pd
importuoti matplotlib.pyplotas kaip plt
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„Vadovas“, „Darbuotojai“, „IT pareigūnas“, „IT pareigūnas“, „HR“, „Darbuotojai“, „HR“, „Darbuotojai“, „Komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
ekstrakto_ vertė = df.groupby („Paskirtis“)
spausdinti (ekstrakto_vertė.get_group ('Personalas'))

Išvesties lange rodomas šis rezultatas:

Pridėkite vertės į grupių sąrašą

Panašūs duomenys gali būti rodomi sąrašo forma, naudojant grupių teiginį. Pirmiausia grupuokite duomenis pagal sąlygą. Tada, pritaikę funkciją, galite lengvai įtraukti šią grupę į sąrašus.

Pavyzdys

Šiame pavyzdyje mes įtraukėme panašius įrašus į grupių sąrašą. Visi darbuotojai yra suskirstyti į grupę pagal „Employee_city“, tada pritaikius „Lambda“ funkciją, ši grupė gaunama sąrašo forma.

importuoti pandas kaip pd
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„vadovas“, „personalas“, „IT pareigūnas“, „IT pareigūnas“, „žmogiškasis personalas“, „personalas“, „HR“, „personalas“, „komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].taikyti (lambda group_series: group_series.išvardinti()).reset_index ()
spausdinti (df1)

„Transform“ funkcijos naudojimas su grupe

Darbuotojai grupuojami pagal jų amžių, sudedant šias vertes, ir naudojant funkciją „transformuoti“ lentelėje pridedamas naujas stulpelis:

importuoti pandas kaip pd
df = pd.„DataFrame“ (
„Employee_Names“: [„Sam“, „Ali“, „Umar“, „Raees“, „Mahwish“, „Hania“, „Mirha“, „Maria“, „Hamza“],
„Paskyrimas“: [„Vadovas“, „Darbuotojai“, „IT pareigūnas“, „IT pareigūnas“, „HR“, „Darbuotojai“, „HR“, „Darbuotojai“, „Komandos vadovas“],
„Employee_city“: ['Karačis', 'Karačis', 'Islamabadas', 'Islamabadas', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabadas],
„Darbuotojo amžius“: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['suma'] = df.groupby (['Employee_Names']) ['Employee_Age'].transformuoti („suma“)
spausdinti (df)

Išvada

Šiame straipsnyje mes ištyrėme skirtingus grupės grupės teiginių naudojimo būdus. Parodėme, kaip galite suskirstyti duomenis į grupes ir pritaikydami skirtingus agregatus ar funkcijas, galite lengvai gauti šias grupes.

Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...