Pandas Groupby Aggregate

Pandas Groupby Aggregate



Mahalaga ang groupby technique dahil sa kung gaano kahusay nitong pinagsama-sama ang data sa mga tuntunin ng parehong performance at laki ng code. Ang terminong 'groupby' ay karaniwang naglalarawan ng isang pamamaraan kasama ang mga sumusunod na hakbang:

  • Naghahati : Sa pamamagitan ng paglalapat ng ilang kundisyon sa mga dataset, maaari naming hatiin ang data sa mga pangkat.
  • Nag-aaplay : Isang proseso kung saan isa-isa kaming naglalapat ng paraan sa bawat grupo.
  • Pinagsasama-sama : Isang pamamaraan upang pagsamahin ang iba't ibang mga dataset upang bumuo ng istraktura ng data pagkatapos gamitin ang groupby() na pamamaraan.

Sa proseso ng pagsasama-sama, kinukuwenta ang isang buod na istatistika para sa bawat pangkat. Para sa bawat pangkat, ang pinagsama-samang paraan ay nagbabalik ng pinagsama-samang halaga (isang halaga). Maaari kaming magsagawa ng ilang pinagsama-samang operasyon sa pinagsama-samang data pagkatapos hatiin ang data sa mga pangkat gamit ang groupby function.







Bakit Nagbibigay ang mga Panda ng Iba't ibang Paraan ng Pagsasama-sama ng Data?

Nag-aalok ang mga Panda ng malawak na hanay ng mga feature at function upang makatulong sa pagsusuri at pagsasama-sama ng data. Ang paggamit ng pivot(), groupby(), at pivot_table() na mga pamamaraan, halimbawa, bawat isa ay nag-aalok ng ibang pananaw sa kung paano pagsasama-samahin ang data. Nagbibigay sila ng mga praktikal na diskarte sa pagsasagawa ng iba't ibang mga gawain sa halip na simpleng i-repackage.



Paano Gamitin ang .agg() Function sa Pandas

Ang isang simpleng average o kabuuan ng mga halaga ay ang aggregation function na pinakamadalas na ginagamit. Maaari kang gumamit ng column ng dataframe o maraming column para tumawag ng pinagsama-samang function. Makakakita ka ng maraming paraan para pagsama-samahin ang data gamit ang Pandas groupby method. Upang ipakita kung gaano kadali ang pamamaraan, tingnan natin ang ilang mga halimbawa na ibinigay sa ibaba. Ang mga pangunahing operasyon sa matematika tulad ng sum, minimum, maximum, mean absolute deviation, standard deviation, mean, median, variance, at produkto ay kabilang sa mga pinakamadalas na ginagamit na built-in na aggregation function. Upang ibuod ang data, maaari nating pagsamahin ang groupby at ang agg() function.



Halimbawa # 01: Tukuyin ang Kabuuan ng Mga Column sa pamamagitan ng Pagpapangkat ng Data Gamit ang groupby.agg() Function

Gagawa muna kami ng dataframe sa pamamagitan ng paggamit ng pd.DataFrame() function upang maaari naming pagpangkatin ang data mula sa column o column ng dataframe at pagkatapos ay matukoy ang kanilang mean value. Dapat nating i-import ang mga module ng pandas at ang numpy library bago tayo gumawa ng dataframe.





Gaya ng nakikita mo, ginamit namin ang diksyunaryo ng pandas upang gawin ang aming dataframe. Ang aming df dataframe ay may apat na column: 'pasyente' 'grupo', 'edad', at 'mga bote ng dugo.' Ang mga halaga ng data ('Ali', 'John', 'Mike', 'Mike', 'John', 'Ali', 'Ali', 'Mike') ay nilalaman ng column na 'pasyente' samantalang ang mga halaga ng data ('A ', 'A', 'B', 'C', 'A', 'C', 'C', 'B'), (21, 22, 24, 21, 20, 24, 22, 22) at ( 2, 3, 1, 1, 2, 3, 2, 1) ay nakapaloob sa mga column na 'group', 'edad' at 'blood_bottles' ayon sa pagkakabanggit. Ipagpalagay na kailangan nating tukuyin ang kabuuan ng mga halaga sa column na 'blood_bottles' sa pamamagitan ng pagpapangkat ng mga value sa column na 'group'.



Para sa data ng pangkat na 'A', ang kabuuan ng mga halaga ng 'blood_bottles' ay 7. Para sa group value na 'B' at 'C', ang kabuuan ng mga value ng 'blood_bottles' ay 2 at 6, ayon sa pagkakabanggit. Maaari rin tayong magpangkat ng maraming column upang matukoy ang kabuuan para sa bawat pangkat.

Gaya ng mapapansin, naipasa namin ang isang listahan ng mga label ng column, ibig sabihin, ['pasyente', 'grupo'] sa loob ng function na groupby() upang lumikha ng mga pangkat ng mga kategorya sa bawat tinukoy na column. Para sa bawat pangkat ng mga tinukoy na column, natukoy namin ang kabuuan ng mga halaga sa 'blood_bottles'. Halimbawa, ang 'Ali' ay nasa 'group' column values ​​A at C. Sa pangkat A, ang kabuuan ng mga value ng 'blood_bottles' para kay Ali ay 2, at 5 sa grupong 'C'.

Halimbawa # 02: Paglalapat ng Maramihang Mga Function sa Iisang Column ng Dataframe Gamit ang groupby.agg() Function

Maaaring ilapat ang maraming pagsasama-sama gamit ang paraang “groupby()” gamit ang pandas function na agg(). Maaaring ipasa ang isang listahang matatawag sa pamamaraan. Tingnan natin kung paano natin mapagsasama-sama ang ating data gamit ang mga built-in na pamamaraan ng numpy library. Hindi tulad ng nakaraang halimbawa, maglalapat kami ng maraming function sa isang column ng dataframe. Ang pd.DataFrame() function ay gagamitin upang lumikha ng dataframe para dito na may kahit isang column na naglalaman ng mga numerical na halaga.


Nalikha ang kinakailangang dataframe na mayroong isang numerical na column i.e. 'mga marka' na may mga halagang 41, 40, 35, 39, 49, 31, 34, at 42. May 3 pang column na 'estudyante', 'subjects', at 'degree' sa aming dataframe na maaaring hatiin sa mga grupo sa pamamagitan ng paggamit ng groupby() function. Ang mga halaga sa column na 'students' at 'subjects' ay ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') at ('C++' , 'JAVA', 'Python', 'Python', 'AI', 'JAVA', 'C++', 'AI'). Samantalang ang column degree ay naglalaman ng mga value ng data bilang mga string, ibig sabihin, ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs'). Ipagpalagay na kailangan nating pangkatin ang data ng mga 'paksa' ng hanay at tukuyin ang parehong mean at ang kabuuan ng mga 'marka' ng hanay para sa bawat nakagrupong data.

Tinukoy namin ang pangalan ng column na 'mga paksa' bilang isang string sa loob ng function na groupby() upang i-convert ang data sa mga pangkat ng mga kategorya. Para sa column ng mga marka, ginamit namin ang paraan ng agg(), at sa loob ng function na agg() tinukoy namin ang mga numpy function na np.sum at np.mean upang mahanap ang kabuuan at average ng mga marka ng data ng bawat pangkat sa mga paksa ng column. Ang kabuuan at ibig sabihin ng halaga para sa halaga ng pangkat na 'AI' ay 91 at 45.5, ayon sa pagkakabanggit. Ang kabuuan ng mga marka para sa halagang 'C++' ay 75, at ang ibig sabihin ng halaga ay 37.5. Para sa pangkat na JAVA, ang kabuuan ng mga marka ay 71 at ang ibig sabihin ng halaga ay 35.5, samantalang ang kabuuan at ibig sabihin ng halaga para sa Python ay 74 at 37, ayon sa pagkakabanggit.

Halimbawa # 03: Paglalapat ng Maramihang Mga Function sa Maramihang Mga Column ng Dataframe Gamit ang groupby.agg() Function

Sa halip na maglapat ng iba't ibang function sa isang column ng dataframe, maaari tayong maglapat ng maraming function sa iba't ibang numeric na column. Maaari kaming gumamit ng diksyunaryo sa agg() function bilang input para maglapat ng partikular na paraan ng pagsasama-sama sa iba't ibang column ng dataframe. I-import natin ang mga pandas at numpy library bago gumawa ng dataframe na may maraming numeric na column.

Mayroong apat na column sa bagong likhang dataframe na may mga pangalang 'player', 'least_score,' 'highest_score' at 'location'. Sa column na 'player', inimbak namin ang mga pangalan ng ilang manlalaro bilang string data values ​​('Leo', 'Alex', 'Leo', 'Fin', 'Leo', 'Alex', 'Fin', ' Fin'), sa column na 'least_score' mayroong pinakamababang marka ng mga manlalaro para sa ilang mga laban (12, 34, 2, 21, 9, 1, 0, 34), habang sa column na 'highest_score' mayroon kaming pinakamataas na score ng mga manlalaro (12, 34, 2, 21, 9, 1, 0, 34) at sa column na 'lokasyon' ay may mga pangalan ng mga venue kung saan nilaro ng mga manlalaro ang kanilang mga laban ('France', 'England', 'Dubai', ' Dubai', 'England', 'France', 'Dubai', 'France').

Ipagpalagay natin na pagkatapos i-grupo ang data sa column na 'mga manlalaro', kailangan nating hanapin ang average para sa mga value ng column na 'least_score' at ang kabuuan para sa mga value ng data na 'hightest_score' para sa bawat pangkat.

Sa loob ng agg() function, nagpasa kami ng python dictionary {‘highest_score’ : ‘sum’, ‘least_score’ : ‘mean’} upang mahanap ang kabuuan at average na halaga para sa isang tinukoy na column laban sa bawat pangkat. Makikita na ang pinagsama-samang halaga na Alex ay may kabuuan ng 'pinakamataas na_score' na halaga na 132 at ang average ng 'kaunting_score' na halaga ay 17.5. Para sa 'Fin' ang kabuuan ng mga value ay 199 at ang average ay 18.3333333 sa mga column na 'highest_score' at 'least_score' ayon sa pagkakabanggit. Ang value ng pangkat na Leo ay may sum value na 180 sa 'highest_score' at isang average na value na 7.666667 sa 'least_score'.

Konklusyon

Sa tutorial na ito, tinalakay namin ang groupby() at pagsasama-sama sa mga pandas. Napag-usapan din namin kung paano gamitin ang function na groupby.agg(). Nagpatupad kami ng tatlong halimbawa sa artikulong ito upang ituro sa iyo kung paano gumamit ng isang function ng pagsasama-sama sa isang column ng dataframe sa pamamagitan ng pagpapangkat ng data ng isa at maramihang column, kung paano maglapat ng maraming function ng aggregation sa isang column ng isang dataframe, at kung paano maglapat ng marami. aggregation functions sa maraming column ng dataframe gamit ang groupby.agg() function.