پانڈاس گروپ بائی ایگریگیٹ

Pan As Grwp Bayy Aygrygy



گروپ بائی تکنیک اس لیے ضروری ہے کہ یہ کارکردگی اور کوڈ سائز دونوں کے لحاظ سے ڈیٹا کو کتنی اچھی طرح سے اکٹھا کرتی ہے۔ اصطلاح 'گروپ بائی' عام طور پر ایک طریقہ کار کی وضاحت کرتی ہے جس میں درج ذیل اقدامات شامل ہیں:

  • تقسیم کرنا : ڈیٹا سیٹس پر کچھ شرائط لاگو کر کے، ہم ڈیٹا کو گروپس میں تقسیم کر سکتے ہیں۔
  • درخواست دے رہا ہے۔ : ایک ایسا عمل جہاں ہم انفرادی طور پر ہر گروپ پر ایک طریقہ لاگو کرتے ہیں۔
  • یکجا کرنا : گروپ بائی() طریقہ استعمال کرنے کے بعد ڈیٹا سٹرکچر بنانے کے لیے مختلف ڈیٹا سیٹس کو یکجا کرنے کا طریقہ۔

جمع کرنے کے عمل میں، ہر گروپ کے لیے ایک خلاصہ شماریات کی گنتی کی جاتی ہے۔ ہر گروپ کے لیے، مجموعی طریقہ ایک مجموعی قدر (واحد قدر) لوٹاتا ہے۔ ہم گروپ بائی فنکشن کا استعمال کرتے ہوئے ڈیٹا کو گروپس میں تقسیم کرنے کے بعد گروپ کردہ ڈیٹا پر کئی مجموعی کارروائیاں انجام دے سکتے ہیں۔







پانڈا ڈیٹا اکٹھا کرنے کے مختلف طریقے کیوں فراہم کرتے ہیں؟

پانڈا ڈیٹا کے تجزیہ اور جمع کرنے میں مدد کرنے کے لیے خصوصیات اور افعال کی ایک وسیع رینج پیش کرتے ہیں۔ pivot()، groupby()، اور pivot_table() طریقوں کا استعمال، مثال کے طور پر، ہر ایک مختلف نقطہ نظر پیش کرتا ہے کہ ڈیٹا کو کیسے جمع کیا جائے گا۔ وہ مختلف کاموں کو انجام دینے کے لیے عملی طریقے فراہم کرتے ہیں بجائے اس کے کہ اسے دوبارہ پیک کیا جائے۔



پانڈوں میں .agg() فنکشن کا استعمال کیسے کریں۔

ایک سادہ اوسط یا قدروں کا مجموعہ جمع کرنے کا فنکشن ہے جو اکثر استعمال ہوتا ہے۔ آپ مجموعی فنکشن کو کال کرنے کے لیے ڈیٹا فریم کے کالم یا ایک سے زیادہ کالم استعمال کر سکتے ہیں۔ آپ Pandas groupby طریقہ استعمال کرتے ہوئے ڈیٹا کو جمع کرنے کے بہت سے طریقے دیکھیں گے۔ یہ ظاہر کرنے کے لیے کہ طریقہ کار کتنا آسان ہے، آئیے ذیل میں دی گئی کچھ مثالوں کو دیکھیں۔ بنیادی ریاضی کی کارروائیاں جیسے کہ رقم، کم از کم، زیادہ سے زیادہ، مطلب مطلق انحراف، معیاری انحراف، اوسط، درمیانی، تغیر، اور پروڈکٹ سب سے زیادہ استعمال ہونے والے بلٹ ان ایگریگیشن فنکشنز میں سے ہیں۔ ڈیٹا کا خلاصہ کرنے کے لیے، ہم گروپ بائی اور agg() فنکشن کو یکجا کر سکتے ہیں۔



مثال # 01: groupby.agg() فنکشن کا استعمال کرتے ہوئے ڈیٹا کو گروپ کر کے کالموں کے مجموعے کا تعین کریں۔

ہم پہلے pd.DataFrame() فنکشن کا استعمال کرکے ڈیٹا فریم بنائیں گے تاکہ ہم ڈیٹا فریم کے کالم یا کالم سے ڈیٹا کو گروپ کر سکیں اور پھر ان کی اوسط قدر کا تعین کریں۔ ڈیٹا فریم بنانے سے پہلے ہمیں پانڈوں کے ماڈیولز اور نمپی لائبریری کو درآمد کرنا ہوگا۔





جیسا کہ آپ دیکھ سکتے ہیں، ہم نے اپنا ڈیٹا فریم بنانے کے لیے پانڈا ڈکشنری کا استعمال کیا۔ ہمارے ڈی ایف ڈیٹا فریم میں چار کالم ہیں: 'مریض' 'گروپ'، 'عمر'، اور 'خون کی بوتلیں'۔ ڈیٹا ویلیوز ('علی'، 'جان'، 'مائیک'، 'مائیک'، 'جان'، 'علی'، 'علی'، 'مائیک') کالم 'مریض' پر مشتمل ہیں جبکہ ڈیٹا ویلیوز ('A '، 'اے'، 'بی'، 'سی'، 'اے'، 'سی'، 'سی'، 'بی')، (21، 22، 24، 21، 20، 24، 22، 22) اور ( 2، 3، 1، 1، 2، 3، 2، 1) بالترتیب کالم 'گروپ'، 'عمر' اور 'خون کی بوتلیں' میں موجود ہیں۔ فرض کریں کہ ہمیں 'blood_bottles' کالم میں 'گروپ' کالم میں قدروں کو گروپ کرکے قدروں کے مجموعہ کا تعین کرنا ہے۔



گروپ ڈیٹا 'A' کے لیے، 'blood_bottles' کی اقدار کا مجموعہ 7 ہے۔ گروپ ویلیوز 'B' اور 'C' کے لیے، 'blood_bottles' کی قدروں کا مجموعہ بالترتیب 2 اور 6 ہے۔ ہم ہر گروپ کے لیے رقم کا تعین کرنے کے لیے متعدد کالموں کو بھی گروپ کر سکتے ہیں۔

جیسا کہ مشاہدہ کیا جا سکتا ہے، ہم نے ہر مخصوص کالم میں زمرہ جات کے گروپس بنانے کے لیے گروپ بائی() فنکشن کے اندر کالم لیبلز کی ایک فہرست پاس کی ہے، یعنی ['مریض'، 'گروپ']۔ مخصوص کالموں کے ہر گروپ کے لیے، ہم نے 'blood_bottles' میں اقدار کا مجموعہ طے کیا ہے۔ مثال کے طور پر، 'علی' 'گروپ' کالم ویلیو A اور C میں ہے۔ گروپ A میں، علی کے لیے 'blood_bottles' کی قدروں کا مجموعہ 2 اور گروپ 'C' میں 5 ہے۔

مثال # 02: groupby.agg() فنکشن کا استعمال کرتے ہوئے ڈیٹا فریم کے سنگل کالم پر متعدد فنکشنز کا اطلاق

pandas فنکشن agg() کا استعمال کرتے ہوئے 'groupby()' طریقہ کے ساتھ متعدد مجموعوں کا اطلاق کیا جا سکتا ہے۔ ایک قابل کال فہرست طریقہ کو بھیجی جا سکتی ہے۔ آئیے دیکھتے ہیں کہ ہم کس طرح نمپی لائبریری کے بلٹ ان طریقوں کا استعمال کرتے ہوئے اپنے ڈیٹا کو جمع کر سکتے ہیں۔ پچھلی مثال کے برعکس، ہم ڈیٹا فریم کے ایک کالم پر متعدد فنکشنز کا اطلاق کریں گے۔ pd.DataFrame() فنکشن اس کے لیے ڈیٹا فریم بنانے کے لیے استعمال کیا جائے گا جس میں کم از کم ایک کالم عددی اقدار پر مشتمل ہو۔


مطلوبہ ڈیٹا فریم ایک عددی کالم کے ساتھ بنایا گیا ہے یعنی 41، 40، 35، 39، 49، 31، 34، اور 42 اقدار کے ساتھ 'نشانات'۔ مزید 3 کالم 'طالب علم'، 'مضامین'، اور 'ڈگری' ہیں۔ ہمارے ڈیٹا فریم میں جسے groupby() فنکشن کا استعمال کرکے گروپس میں تقسیم کیا جاسکتا ہے۔ کالم 'طلباء' اور 'مضامین' کی قدریں ہیں ('Harry', 'Ron', 'Harry', 'Lana', 'Sam', 'Ron', 'Lana', 'Max') اور ('C++' , 'JAVA', 'python', 'python', 'AI', 'JAVA', 'C++', 'AI')۔ جب کہ کالم کی ڈگری میں ڈیٹا کی قدریں بطور تار ہوتی ہیں، یعنی ('Ms', 'Bs', 'Bs', 'Ms', 'Ms', 'Ms', 'Bs', 'Bs')۔ فرض کریں کہ ہمیں کالم 'مضامین' کے ڈیٹا کو گروپ کرنا ہے اور ہر گروپ کردہ ڈیٹا کے لیے کالم 'نشانات' کا اوسط اور مجموعہ دونوں کا تعین کرنا ہے۔

ہم نے ڈیٹا کو زمروں کے گروپس میں تبدیل کرنے کے لیے گروپ بائی() فنکشن کے اندر 'سبجیکٹ' کالم کا نام سٹرنگ کے طور پر بیان کیا ہے۔ مارکس کالم کے لیے، ہم نے agg() طریقہ استعمال کیا ہے، اور agg() فنکشن کے اندر ہم نے کالم کے مضامین میں ہر گروپ ڈیٹا کے نمبروں کا مجموعہ اور اوسط تلاش کرنے کے لیے numpy فنکشنز np.sum اور np.mean بتائے ہیں۔ گروپ ویلیو 'AI' کے لیے رقم اور اوسط قدر بالترتیب 91 اور 45.5 ہیں۔ قدر 'C++' کے نشانات کا مجموعہ 75 ہے، اور اوسط قدر 37.5 ہے۔ JAVA گروپ کے لیے، نشانات کا مجموعہ 71 ہے اور اوسط قدر 35.5 ہے، جب کہ Python کے لیے مجموعہ اور اوسط قدر بالترتیب 74 اور 37 ہے۔

مثال # 03: groupby.agg() فنکشن کا استعمال کرتے ہوئے ڈیٹا فریم کے متعدد کالموں پر ایک سے زیادہ فنکشنز کا اطلاق کرنا

کسی ایک ڈیٹا فریم کے کالم پر مختلف فنکشنز لگانے کے بجائے، ہم مختلف عددی کالموں پر متعدد فنکشنز کا اطلاق کر سکتے ہیں۔ ہم مختلف ڈیٹا فریم کے کالموں پر ایک مخصوص ایگریگیشن طریقہ کو لاگو کرنے کے لیے agg() فنکشن میں ایک لغت کو بطور ان پٹ استعمال کر سکتے ہیں۔ آئیے متعدد عددی کالموں کے ساتھ ڈیٹا فریم بنانے سے پہلے پانڈا اور نمپی لائبریریوں کو درآمد کریں۔

نئے بنائے گئے ڈیٹا فریم میں 'پلیئر'، 'least_score'، 'highest_score' اور 'location' کے ناموں کے ساتھ چار کالم ہیں۔ کالم 'پلیئر' میں، ہم نے چند کھلاڑیوں کے نام اسٹرنگ ڈیٹا ویلیو کے طور پر محفوظ کیے ہیں ('لیو'، 'ایلیکس'، 'لیو'، 'فن'، 'لیو'، 'ایلیکس'، 'فن'، ' Fin')، کالم 'least_score' میں کچھ میچوں کے لیے کھلاڑیوں کے سب سے کم اسکور ہوتے ہیں (12, 34, 2, 21, 9, 1, 0, 34) جبکہ کالم 'highest_score' میں ہمارے پاس کھلاڑیوں کے سب سے زیادہ اسکور ہوتے ہیں۔ (12, 34, 2, 21, 9, 1, 0, 34) اور کالم 'مقام' میں ان مقامات کے نام ہیں جہاں کھلاڑیوں نے اپنے میچ کھیلے ہیں ('فرانس'، 'انگلینڈ'، 'دبئی'، ' دبئی، 'انگلینڈ'، 'فرانس'، 'دبئی'، 'فرانس')۔

فرض کریں کہ 'کھلاڑیوں' کالم میں ڈیٹا کو گروپ کرنے کے بعد، ہمیں 'least_score' کالم کی قدروں کے لیے اوسط اور ہر گروپ کے لیے 'highest_score' ڈیٹا کی قدروں کا مجموعہ تلاش کرنا ہوگا۔

agg() فنکشن کے اندر، ہم نے ایک python ڈکشنری {'highest_score' : 'sum', 'least_score' : 'mean'} ہر گروپ کے خلاف مخصوص کالم کے لیے رقم اور اوسط قدر تلاش کرنے کے لیے پاس کی۔ یہ دیکھا جا سکتا ہے کہ گروپ کردہ ویلیو Alex میں 'highest_score' ویلیو 132 اور 'least_score' ویلیو کا اوسط 17.5 ہے۔ 'Fin' کے لیے اقدار کا مجموعہ 199 ہے اور بالترتیب 'highest_score' اور 'least_score' کالموں میں اوسط 18.3333333 ہے۔ گروپ ویلیو Leo کی 'highest_score' میں 180 اور 'least_score' میں اوسط قدر 7.666667 ہے۔

نتیجہ

اس ٹیوٹوریل میں، ہم نے پانڈوں میں گروپ بائی() اور جمع کرنے کے افعال پر تبادلہ خیال کیا ہے۔ ہم نے گروپby.agg() فنکشن کو استعمال کرنے کے طریقہ پر بھی تبادلہ خیال کیا ہے۔ ہم نے اس مضمون میں تین مثالوں کو لاگو کیا ہے تاکہ آپ کو یہ سکھانے کے لیے کہ ڈیٹا فریم کالم پر سنگل ایگریگیشن فنکشن کو سنگل اور ایک سے زیادہ کالموں کے ڈیٹا کو گروپ کرکے کیسے استعمال کیا جائے، ڈیٹا فریم کے ایک کالم پر ایک سے زیادہ ایگریگیشن فنکشنز کو کیسے لاگو کیا جائے، اور متعدد کو کیسے لاگو کیا جائے۔ groupby.agg() فنکشن کا استعمال کرتے ہوئے ڈیٹا فریم کے متعدد کالموں پر جمع کرنے کے افعال۔