pandas

Kā lietot Group by Pandas Python

Kā lietot Group by Pandas Python
Pandas grupa pēc funkcijas tiek izmantota DataFrames objektu vai kolonnu grupēšanai, pamatojoties uz noteiktiem nosacījumiem vai noteikumiem. Izmantojot funkciju groupby, datu kopas pārvaldība ir vienkāršāka. Tomēr visus saistītos ierakstus var sakārtot grupās. Izmantojot Pandas bibliotēku, varat ieviest funkciju Pandas pēc funkcijas, lai grupētu datus atbilstoši dažāda veida mainīgajiem. Lielākā daļa izstrādātāju grupai pēc funkcijām izmantoja trīs pamata paņēmienus. Pirmkārt, sadalīšana, kurā dati tiek sadalīti grupās, pamatojoties uz dažiem īpašiem apstākļiem. Pēc tam šīm grupām izmantojiet noteiktas funkcijas. Galu galā apvienojiet izvadi datu struktūras veidā.

Šajā rakstā mēs iepazīsimies ar grupas pēc funkcijas pamata lietojumiem pandas pitonā. Visas komandas tiek izpildītas Pycharm redaktorā.

Ar darbinieka datu palīdzību apspriedīsim grupas galveno koncepciju. Mēs esam izveidojuši datu ietvaru ar noderīgu darbinieku informāciju (Employee_Names, Designation, Employee_city, Age).

Stīgu savienošana, izmantojot grupu pēc funkcijas

Izmantojot funkciju groupby, varat sasaistīt virknes. Vienus šūnā tos pašus ierakstus var savienot ar “,”.

Piemērs

Šajā piemērā mēs esam sakārtojuši datus, pamatojoties uz darbinieku sleju “Apzīmējums” un pievienojušies darbiniekiem, kuriem ir vienāds apzīmējums. Funkcija lambda tiek lietota laukam 'Employees_Name'.

importa pandas kā pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karachi', 'Karači', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ("Apzīmējums") ['Employee_Names'].pieteikties (lambda Employee_Names: ','.pievienoties (Employee_Names))
drukāt (df1)

Kad tiek izpildīts iepriekš minētais kods, tiek parādīta šāda izeja:

Vērtību kārtošana augošā secībā

Izmantojiet groupby objektu parastā datu ietvarā, izsaucot '.to_frame () 'un pēc tam atkārtotai indeksēšanai izmantojiet reset_index (). Kārtot kolonnu vērtības, izsaucot sort_values ​​().

Piemērs

Šajā piemērā mēs kārtosim Darbinieka vecumu augošā secībā. Izmantojot šo koda daļu, mēs esam ieguvuši 'Employee_Age' augošā secībā ar 'Employee_Names'.

importa pandas kā pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karachi', 'Karači', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Employee_Age'].summa ().ierāmēt().reset_index ().sort_values ​​(pēc = 'Employee_Age')
drukāt (df1)

Agregātu izmantošana ar grupu

Ir pieejamas vairākas funkcijas vai apkopojumi, kurus varat izmantot datu grupās, piemēram, skaits (), summa (), vidējais (), mediāns (), režīms (), std (), min (), maks ().

Piemērs

Šajā piemērā mēs esam izmantojuši funkciju “count ()” ar groupby, lai uzskaitītu darbiniekus, kas pieder tai pašai “Employee_city”.

importa pandas kā pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karachi', 'Karači', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city').skaitīt ()
drukāt (df1)

Kā redzat šādu izvadi, kolonnās Apzīmējums, Darbinieka nosaukumi un Darbinieka vecums uzskaitiet numurus, kas pieder tai pašai pilsētai:

Vizualizējiet datus, izmantojot groupby

Izmantojot 'importēt matplotlib.pyplot ', varat vizualizēt savus datus diagrammās.

Piemērs

Šis piemērs vizualizē “Employee_Age” ar “Employee_Nmaes” no norādītā DataFrame, izmantojot groupby paziņojumu.

importa pandas kā pd
importa matplotlib.pyplot kā plt
datu ietvars = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karači', 'Karači', 'Islamabada', 'Islamabada', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
plt.clf ()
datu ietvars.groupby ('Darbinieku vārdi').summa ().sižets (kind = 'bar')
plt.rādīt ()

Piemērs

Lai attēlotu sakrauto diagrammu, izmantojot groupby, pagrieziet “stacked = true” un izmantojiet šādu kodu:

importa pandas kā pd
importa matplotlib.pyplot kā plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karachi', 'Karači', 'Islamabad', 'Islamabad', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df.groupby (['Employee_city', 'Employee_Names']).Izmērs().atkrāmēt ().plot (kind = 'bar', stacked = True, fontsize = '6')
plt.rādīt ()

Zemāk dotajā diagrammā sakrauto darbinieku skaits, kas pieder tai pašai pilsētai.

Mainiet kolonnas nosaukumu ar grupu pēc

Apkopoto kolonnas nosaukumu var mainīt arī ar kādu jaunu modificētu nosaukumu šādi:

importa pandas kā pd
importa matplotlib.pyplot kā plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karači', 'Karači', 'Islamabada', 'Islamabada', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_Names') ['Apzīmējums'].summa ().reset_index (name = 'Employee_Designation')
drukāt (df1)

Iepriekš minētajā piemērā nosaukums “Apzīmējums” tiek mainīts uz “Darbinieka_nosaukums”.

Iegūt grupu pēc atslēgas vai vērtības

Izmantojot paziņojumu groupby, no datu ietvara var izgūt līdzīgus ierakstus vai vērtības.

Piemērs

Tālāk sniegtajā piemērā mums ir grupas dati, kuru pamatā ir “Apzīmējums”. Pēc tam grupa "Personāls" tiek izgūta, izmantojot .getgroup ('Personāls').

importa pandas kā pd
importa matplotlib.pyplot kā plt
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karači', 'Karači', 'Islamabada', 'Islamabada', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
izvilkuma_vērtība = df.groupby (“Apzīmējums”)
izdrukāt (izvilkuma_vērtība.get_group ('Personāls'))

Izvades logā tiek parādīts šāds rezultāts:

Pievienojiet vērtību grupas sarakstam

Līdzīgus datus var parādīt saraksta veidā, izmantojot paziņojumu groupby. Vispirms grupējiet datus, pamatojoties uz nosacījumu. Pēc tam, izmantojot funkciju, jūs varat viegli ievietot šo grupu sarakstos.

Piemērs

Šajā piemērā mēs esam iekļāvuši līdzīgus ierakstus grupu sarakstā. Visi darbinieki tiek sadalīti grupā, pamatojoties uz 'Employee_city', un pēc tam, izmantojot funkciju 'Lambda', šī grupa tiek izgūta saraksta veidā.

importa pandas kā pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karači', 'Karači', 'Islamabada', 'Islamabada', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df1 = df.groupby ('Employee_city') ['Employee_Names'].piemērot (lambda grupas_sērijas: grupas_sērijas.uzskaitīt()).reset_index ()
drukāt (df1)

Transform funkcijas izmantošana ar groupby

Darbinieki tiek grupēti atbilstoši viņu vecumam, šīs vērtības saskaita kopā, un, izmantojot funkciju “pārveidot”, tabulā tiek pievienota jauna sleja:

importa pandas kā pd
df = pd.DataFrame (
'Employee_Names': ['Sam', 'Ali', 'Umar', 'Raees', 'Mahwish', 'Hania', 'Mirha', 'Maria', 'Hamza'],
“Apzīmējums”: [“vadītājs”, “personāls”, “IT virsnieks”, “IT virsnieks”, “personāls”, “personāls”, “personāls”, “personāls”, “komandas vadītājs”],
'Employee_city': ['Karači', 'Karači', 'Islamabada', 'Islamabada', 'Quetta', 'Lahore', 'Faislabad', 'Lahore', 'Islamabad'],
“Darbinieka vecums”: [60, 23, 25, 32, 43, 26, 30, 23, 35]
)
df ['summa'] = df.groupby (['Employee_Names']) ['Employee_Age'].pārveidot ('summa')
drukāt (df)

Secinājums

Šajā rakstā mēs esam izpētījuši dažādus grupas paziņojuma izmantošanas veidus. Mēs parādījām, kā jūs varat sadalīt datus grupās, un, izmantojot dažādus apkopojumus vai funkcijas, jūs varat viegli izgūt šīs grupas.

Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...
Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...