Š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 pddf = 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 pddf = 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 pddf = 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 pdimportuoti 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 pdimportuoti 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 pdimportuoti 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 pdimportuoti 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 pddf = 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 pddf = 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.