پانڈاس کیس جب

Pan As Kys Jb



جب کوئی شرط پوری ہو جاتی ہے یا پوری ہوتی ہے تو، پانڈاس زبان میں کیس سٹیٹمنٹ ایک آؤٹ پٹ فراہم کرتا ہے یا کوئی قدر واپس کرتا ہے۔ کیس کا بیان متغیر کی قدر کا ممکنہ قدروں کی ایک حد سے موازنہ کرنا ممکن بناتا ہے۔ جب اقدار کے سیٹ کو کیس سٹیٹمنٹ میں حوالہ دیا جاتا ہے یا پاس کیا جاتا ہے تو سیٹ کے اندر موجود ہر ویلیو کو سٹیٹمنٹ کے اندر موجود کیسز یا حالات سے چیک کیا جاتا ہے۔ اسی آپریشن کو کرنے کے لیے ہم if-else بیان بھی استعمال کر سکتے ہیں۔ اگر کوئی خاص شرط درست ہے تو، if-else بیان اسکرپٹ کے ایک ٹکڑے کو انجام دینے کا سبب بنتا ہے۔ if-else بیان میں کہا گیا ہے کہ اگر شرط درست ہے تو اس کو انجام دیں اور اگر یہ نہیں ہے تو کرنا۔ اس ٹیوٹوریل میں، ہم کیس سٹیٹمنٹس اور if-else سٹیٹمنٹس کا استعمال کر کے مختلف آپریشن کریں گے۔

پانڈاس کیس کا بیان کیسے استعمال کریں؟

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

ڈی ایف [ 'کالم کا نام' ] = np.where ( حالت 1 , 'value1',
np.where ( حالت دو , 'value2',
np.where ( حالت 3 , 'value3', 'value4' ) ) )







مندرجہ بالا بیان قدر کے لیے ہر شرط کی جانچ کرے گا اور، اگر شرط مطمئن ہے، تو آؤٹ پٹ پیدا کرے گا یا شرط کے خلاف قدر واپس کرے گا۔



مثال # 1: پانڈاس کیس کا بیان جہاں() فنکشن کا استعمال کرتے ہوئے

آئیے پہلے ڈیٹا فریم بنائیں تاکہ ہم اپنا کیس سٹیٹمنٹ استعمال کر سکیں۔ ڈیٹا فریم بنانے کے لیے، ہم سب سے پہلے numpy اور pandas ماڈیولز درآمد کریں گے تاکہ ہم ان کی فعالیت کو استعمال کر سکیں۔ pd.Dataframe() ہمارے ڈیٹا فریم کو بنانے کے لیے استعمال کیا جائے گا۔







ہم نے 'df' ڈیٹا فریم بنایا ہے۔ ایک Python ڈکشنری pd.DataFrame() کے اندر کیز اور ویلیوز کے ساتھ دلیل کے طور پر پاس کی جاتی ہے۔ ہم اپنے ڈیٹا فریم کو دیکھنے کے لیے print() فنکشن استعمال کریں گے۔



'df' ڈیٹا فریم میں ہمارے پاس دو کالم ہیں 'نام' اور 'نشان' قدروں کے ساتھ ['رون'، 'ٹم'، 'اینا'، 'جیک'، 'روب'، 'لوسی'] اور [4، 6 بالترتیب، 8، 6، 9،10]۔ فرض کریں کہ یہ نام طلباء کے ناموں کو ذخیرہ کرنے والے کالم ہیں اور کالم 'نمبر' کچھ حالیہ ٹیسٹ کے اسکور کو محفوظ کرتا ہے۔ اب، ہم ایک کیس سٹیٹمنٹ لکھیں گے جس میں 'ریمارکس' کے نام سے ایک نیا کالم شامل کیا جائے گا جس کی قدریں ہر ایک شرط کے لیے ہمارے بیان کردہ اقدار پر مبنی ہیں۔

'numpy.where()' طریقہ ان پٹ سرنی، کالم، یا فہرست سے عنصر کے اشاریے فراہم کرتا ہے جو مخصوص شرط کو پورا کرتا ہے۔ مندرجہ بالا سوئچ کیس میں، np.where() فنکشن 'نشانات' کالم میں ہر عنصر کو چیک کرتا ہے۔ اگر قیمت 5 کے برابر یا اس سے کم ہے، تو یہ آؤٹ پٹ کے طور پر 'فیل' لوٹائے گی۔ اگر قیمت 7 سے کم یا اس کے برابر ہے، تو یہ اطمینان بخش واپس آئے گا، اور اگر قدر 9 سے کم یا اس کے برابر ہے، تو یہ 'زبردست' لوٹائے گی۔ اگر کوئی نہیں ہے، تو نتیجہ بہترین ہوگا۔

جیسا کہ دیکھا جا سکتا ہے، نیا کالم 'ریمارکس' ہمارے 'df' ڈیٹا فریم میں بنایا گیا ہے، اوپر دیے گئے کیس سٹیٹمنٹ کے ذریعے لوٹائی گئی اقدار کو محفوظ کرتا ہے۔

مثال نمبر 2:

آئیے ایک مختلف ڈیٹا فریم کے ساتھ مذکورہ کیس اسٹیٹمنٹ کو دوبارہ آزماتے ہیں۔ فرض کریں کہ ہمیں پچھلے فٹ بال ٹورنامنٹ میں کھلاڑیوں کو ان کے کل گولز کی بنیاد پر گریڈ کرنا ہے۔ تو آئیے فٹ بال کھلاڑیوں کے ریکارڈ کو ذخیرہ کرنے کے لیے ڈیٹا فریم بنائیں۔

ہم نے اپنا ڈیٹا فریم بنانے کے لیے pd.DataFrame() فنکشن کے اندر کلیدوں 'نام' اور 'اہداف' کے ساتھ ایک لغت پاس کی ہے۔ اپنے ڈیٹا فریم کو پرنٹ کرنے کے لیے، ہم پرنٹ فنکشن استعمال کریں گے۔

جیسا کہ اوپر ڈیٹا فریم میں دیکھا جا سکتا ہے، ہمارے پاس دو کالم ہیں: 'نام' اور 'اہداف'۔ کالم کے نام میں، ہمارے پاس کھلاڑیوں کے نام ہیں ['جان'، 'مارٹی'، 'کلے'، 'نک'، 'مائیک'، 'ایلیکس'، 'ٹام'، 'راکی']۔ 'کالم' گولز میں، ہمارے پاس پچھلے ٹورنامنٹ میں ہر کھلاڑی کے ذریعے کیے گئے گولوں کی کل تعداد ہے۔ اب ہم اپنے کیس سٹیٹمنٹ کا استعمال کرتے ہوئے ان کھلاڑیوں کو ان کے اسکور کیے گئے گول کی بنیاد پر درجہ بندی کریں گے۔

مذکورہ بالا کیس where() فنکشن کا استعمال کرتے ہوئے بنایا گیا ہے۔ کیس کے اندر، سٹیٹمنٹ فنکشن ہر عنصر کو 'نشانات' کالم میں حالات کے خلاف چیک کر رہا ہے۔ اگر کالم 'اہداف' میں قدر 5 کے برابر یا اس سے کم ہے، تو یہ 'C' لوٹائے گا۔ اگر کالم 'اہداف' میں قدر 9 کے برابر یا اس سے کم ہے، تو یہ 'B' لوٹائے گا۔ یہ ایک 'A' واپس کرے گا اگر کالم 'اہداف' میں قدر 10 کے برابر یا اس سے زیادہ ہو۔ آئیے نتائج دیکھنے کے لیے 'df' پرنٹ کریں۔

نیا کالم 'درجہ بندی' مندرجہ بالا اسکرپٹ کا استعمال کرتے ہوئے کامیابی کے ساتھ بنایا گیا ہے۔

مثال #3: پانڈا if-else اسٹیٹمنٹ اپلائی() فنکشن کا استعمال کرتے ہوئے

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

جیسا کہ دیکھا جا سکتا ہے، ہمارا ڈیٹا فریم دو کالموں 'A' پر مشتمل ہے جو عددی قدروں کو ذخیرہ کرتے ہیں [23, 35, 64, 74, 85] اور 'B' قدروں کے ساتھ [45, 34, 61, 89, 27]۔ اب ہم ایک فنکشن بنائیں گے جو اس بات کا تعین کرے گا کہ ہمارے ڈیٹا فریم کی ہر قطار میں دونوں کالموں میں کون سی قدر زیادہ ہے۔

آپ Python lambda فنکشن 'pandas' استعمال کر سکتے ہیں۔ ایک اظہار چلانے کے لیے DataFrame.apply()”۔ Python میں، ایک لیمبڈا فنکشن ایک کمپیکٹ گمنام فنکشن ہے جو کسی بھی تعداد میں دلائل کو قبول کرتا ہے اور اظہار کو انجام دیتا ہے۔ اوپر دیے گئے اسکرپٹ میں، ہم نے ایک کنڈیشن اسٹیٹمنٹ بنایا ہے جو دونوں کالموں کی قدر کا موازنہ کرے گا اور نتیجہ کو نئے 'موازنہ' کالم میں محفوظ کرے گا۔ اگر کالم 'A' کی قدر کالم 'B' کی قدر سے کم ہے، تو یہ 'B زیادہ ہے' لوٹائے گا۔ اگر شرط مطمئن نہیں ہوتی ہے تو یہ 'A بڑا ہے' لوٹائے گا۔

مثال نمبر 4:

آئیے کسی اور ڈیٹا فریم کے ساتھ apply() فنکشن کے اندر if-else اسٹیٹمنٹ کا استعمال کرتے ہوئے ایک اور مثال آزماتے ہیں۔

فرض کریں کہ ہمارا ڈیٹا فریم کسی کمپنی کے ملازمین کا ریکارڈ محفوظ کر رہا ہے۔ کالم 'ایم پی' ملازمین کے ناموں کو اسٹور کرتا ہے ['فرینکی'، 'ہیری'، 'لیوک'، 'پیٹر'، 'اینڈریو']، جب کہ کالم 'تنخواہ' ہر ملازم کی تنخواہوں کو محفوظ کرتا ہے [1350، 1000، 900 , 1200, 980] 'df' ڈیٹا فریم میں۔ اب ہم apply() طریقہ استعمال کرکے اپنا if-else اسٹیٹمنٹ بنائیں گے۔

مندرجہ بالا شرط کالم 'تنخواہ' میں ہر قدر کی جانچ کرے گی اور ملازمین کی تنخواہوں میں 200 کا اضافہ کرے گی جہاں تنخواہ کی قیمت 1000 سے کم یا اس کے برابر ہے۔ ہم نے نئے کالم میں Apply() فنکشن سے واپس آنے والی ویلیو کو محفوظ کر لیا ہے۔ اضافہ' آئیے اوپر کے اسکرپٹ سے نتائج دیکھتے ہیں۔

جیسا کہ آپ دیکھ سکتے ہیں، فنکشن نے کامیابی سے ان ویلیوز میں 200 کا اضافہ کیا ہے جو 100 سے کم یا اس کے برابر تھیں۔ وہ ویلیوز جو 1000 سے زیادہ تھیں کوئی تبدیلی نہیں کی گئی۔

نتیجہ:

اس ٹیوٹوریل میں، ہم نے دیکھا کہ جب شرط مطمئن ہو جاتی ہے، تو اس قسم کا بیان، جسے کیس سٹیٹمنٹ کہا جاتا ہے، ایک قدر لوٹاتا ہے۔ ہم نے دیکھا ہے کہ آپ مطلوبہ آپریشن یا کام کو انجام دینے کے لیے کیس اسٹیٹمنٹ کیسے بنا سکتے ہیں۔ اس ٹیوٹوریل میں، ہم نے کیس سٹیٹمنٹس بنانے کے لیے np.where() فنکشن اور apply() فنکشن کا استعمال کیا ہے۔ ہم نے آپ کو یہ سکھانے کے لیے چند مثالیں لاگو کی ہیں کہ پانڈا کیس سٹیٹمنٹس کو کس طرح استعمال کرتے ہوئے where() فنکشن استعمال کیا جائے اور کیس سٹیٹمنٹس بنانے کے لیے apply() فنکشن کو کیسے استعمال کیا جائے۔