پانڈا زمرہ کی قدروں کو انٹ ویلیوز میں تبدیل کرتے ہیں۔

Pan A Zmr Ky Qdrw Kw An Wylywz My Tbdyl Krt Y

مشین لرننگ ایگزیکیوشن کے ڈیٹا سیٹس میں عددی اور واضح متغیر دونوں شامل ہیں۔ زمرہ جات متغیرات سٹرنگ قسم کا ڈیٹا ہے جسے انسان آسانی سے سمجھ سکتے ہیں۔ دوسری طرف، مشینیں واضح ان پٹ کو براہ راست نہیں سمجھ سکتی ہیں۔ نتیجتاً، واضح مواد کو عددی اقدار میں تبدیل کیا جانا چاہیے جن کی مشینیں تشریح کر سکتی ہیں۔

زمرہ کو انٹ میں تبدیل کرنے کے طریقے

ڈیٹا فریم کی درجہ بندی کو انٹ ویلیوز میں تبدیل کرنے کے لیے 'پانڈا' میں دستیاب تکنیک یہاں فراہم کی گئی ہیں:

    • DataFrame.replace() طریقہ
    • DataFrame.apply(factorize()) طریقہ

ہم اس مضمون میں ان طریقوں کو استعمال کریں گے اور تفصیل سے بتائیں گے کہ 'پانڈا' میں دونوں طریقوں کو کیسے استعمال کیا جائے۔

مثال نمبر 1: پانڈا ریپلیس() طریقہ استعمال کرنا

ڈیٹا فریم میں کیٹیگوریکل ویلیوز کو پانڈا 'DataFrame.replace()' طریقہ استعمال کرکے int میں تبدیل کیا جا سکتا ہے۔ ہم یہاں اس طریقہ کو استعمال کرنا سیکھیں گے۔



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



پہلے کالم، 'نام' کی آٹھ اقدار ہیں جو کہ 'بش'، 'البرٹ'، 'ہیری'، 'پیٹر'، 'ایما'، 'نیوٹن'، 'سمتھ' اور 'ایلسا' ہیں۔ دوسرا کالم، 'ڈگری'، آٹھ واضح قدروں کو بھی ذخیرہ کرتا ہے، جو کہ 'BS'، 'MS'، 'MS'، 'BS'، 'BS'، 'BS'، 'MS' اور 'MS' ہیں۔ آخری کالم 'انکم' میں آٹھ عددی قدریں '60000'، '80000'، '75000'، '45000'، '56000'، '65000'، '55000' اور '70000' ہیں۔ ہم نے 'pd.DataFrame()' فنکشن کو استعمال کرنے کے آؤٹ پٹ کو ذخیرہ کرنے کے لیے ڈیٹا فریم آبجیکٹ 'اسٹاف' بنایا ہے۔ اپنے ابتدائی ڈیٹا فریم کو ظاہر کرنے کے لیے، ہم نے اسکرپٹ کی آخری لائن میں ڈیٹا فریم کے نام 'اسٹاف' کے پیرامیٹر کے ساتھ 'پرنٹ()' طریقہ استعمال کیا۔


ٹرمینل پر آؤٹ پٹ دیکھنے کے لیے، 'Spyder' ٹول پر 'Run File' بٹن استعمال کریں یا 'Shift+Enter' کیز کو دبائیں۔ ٹرمینل پر ظاہر ہونے والا آؤٹ پٹ تین کالموں کے ساتھ ایک ڈیٹا فریم دکھاتا ہے جو کامیابی کے ساتھ تیار ہو چکے ہیں۔


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



ہم نے ڈیٹا فریم کا نام مخصوص کالم کے نام کے ساتھ فراہم کیا ہے جس کی اقدار کو ہمیں تبدیل کرنے کی ضرورت ہے، جو کہ 'اسٹاف['degree']' ہے۔ ہم چاہتے ہیں کہ کالم 'ڈگری' کی قدریں، جس میں واضح قدریں ہیں، کو عددی اقدار سے تبدیل کیا جائے۔ پھر '.replace()' طریقہ استعمال کیا جاتا ہے۔ ہم نے اسے دو سیٹوں میں منتقل کیا ہے۔ پہلی میں دو واضح قدریں ہیں '['BS', 'MS']' جو ہم نے 'ڈگری' کالم سے نکالی ہیں۔ جیسا کہ آپ دیکھ سکتے ہیں، 'ڈگری' کالم ان دو قدروں کو بار بار استعمال کرتا ہے۔ اگر ہمارے پاس کوئی تیسری قدر ہوتی تو ہم اس کا بھی ذکر کرتے۔ دوسرے سیٹ میں دو int ویلیوز '[0, 1]' ہیں، جو بالترتیب پہلے سیٹ ویلیوز کی جگہ لیں گی۔ دوسرے پیرامیٹر، 'انپلس'، کو 'True' کے طور پر سیٹ کیا گیا ہے، جو قدروں کو تبدیل کرنے کے قابل بناتا ہے۔ اگر 'False' پر سیٹ کیا جاتا ہے، تو یہ متبادل کو غیر فعال کر دے گا۔ آخر میں، ہم نے اپ ڈیٹ کردہ 'اسٹاف' ڈیٹا فریم کو ظاہر کرنے کے لیے 'پرنٹ()' طریقہ استعمال کیا ہے۔


نتیجے میں ڈیٹا فریم کی 'ڈگری' کالم میں عددی اقدار ہیں۔ قدر 'BS' کی جگہ '0s' ہے، اور 'MS' کی جگہ '1s' ہے۔


یہاں تک کہ آپ پراپرٹی 'dataframe.dtype' کا استعمال کرکے ہر کالم کے ڈیٹا ٹائپ کی تصدیق کر سکتے ہیں۔ اس سے ہمیں مخصوص ڈیٹا فریم میں تمام کالموں کی ڈیٹا ٹائپس مل جائیں گی۔


یہاں، ہمیں اپنے ڈیٹا فریم کی ڈیٹا ٹائپس ملی ہیں۔ ہم دیکھ سکتے ہیں کہ 'ڈگری' کالم کی ڈیٹا ٹائپ کو 'int64' میں تبدیل کر دیا گیا ہے۔

مثال نمبر 2: پانڈا اپلائی() طریقہ استعمال کرنا

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

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

اس ڈیٹا فریم میں چار کالم 'گروپ'، 'پوزیشن'، 'اسکورز' اور 'اسسٹ' ہیں۔ ہر کالم 9 اقدار کو محفوظ کرتا ہے۔ 'گروپ' کالم کی قدریں 'X'، 'X'، 'Y'، 'X'، 'Y'، 'Y'، 'Y'، 'X' اور 'Y' ہیں۔ 'پوزیشن' کالم میں 9 ویلیوز ہیں جو کہ 'A'، 'C'، 'D'، 'A'، 'C'، 'B'، 'B'، 'D' اور 'B' ہیں۔ 'اسکورز' کالم میں '4'، '8'، '7'، '10'، '9'، '5'، '7'، '3' اور '23' کے طور پر عددی اقدار ہیں۔ آخری کالم، 'مدد'، '10'، '2'، '3'، '9'، '3'، '7'، '4'، '2' اور '9' کی قدروں پر مشتمل ہے۔

ہم نے ڈیٹا فریم آبجیکٹ 'پروگ' بنایا ہے اور اسے 'pd.DataFrame()' طریقہ کو استعمال کرنے کا آؤٹ پٹ تفویض کیا ہے۔ لہذا، 'pd.DataFrame()' سے تیار کردہ ڈیٹا فریم کے نتیجے میں 'prog' میں محفوظ کیا جائے گا۔ اب، ہم اس آبجیکٹ کو استعمال کرکے ڈیٹا فریم تک رسائی حاصل کرسکتے ہیں۔ اس ڈیٹا فریم کو دیکھنے کے لیے، ہم نے ڈیٹا فریم آبجیکٹ 'پروگ' کے ساتھ اس کے پیرامیٹر کے طور پر 'print()' طریقہ استعمال کیا ہے۔


جب پچھلا Python پروگرام عمل میں آتا ہے، تو ٹرمینل پر چار کالموں والا ڈیٹا فریم ظاہر ہوگا۔


متعدد طبقاتی کالموں کو عدد میں تبدیل کرنے کے لیے، ہم نے اس تکنیک پر عمل کیا ہے۔ ہمیں سب سے پہلے پانڈا 'DataFrame.select_dtypes().columns' طریقہ استعمال کرکے آبجیکٹ ڈیٹا ٹائپ پر مشتمل تمام کالموں کو منتخب کرنا ہوگا۔ جب ہم اسے اپنی اسکرپٹ میں ضرورت کے مطابق استعمال کرتے ہیں، تو یہ 'prog.select_dtypes(['object']).columns' ہوگا۔ یہ 'پروگ' ڈیٹا فریم میں ڈیٹا ٹائپ 'آبجیکٹ' والے تمام کالموں کو منتخب کرے گا۔ اس طریقہ کے آؤٹ پٹ کو ذخیرہ کرنے کے لیے ہم نے ایک متغیر 'concate_col' بنایا ہے۔ اب ہم صرف اس متغیر 'concat_col' کو استعمال کرکے 'آبجیکٹ' ڈیٹا ٹائپ کالمز تک رسائی حاصل کر سکتے ہیں۔

اب، ان کالموں کو عدد میں تبدیل کرنے کے لیے، ہم نے 'pd.factorize()' طریقہ کے ساتھ پانڈا 'DataFrame.apply()' استعمال کیا ہے۔ ہم نے ڈیٹا فریم نام کے ساتھ 'concat_col' متغیر استعمال کیا ہے پھر '.apply()' طریقہ استعمال کیا جاتا ہے۔ '.apply' طریقہ کے قوسین کے درمیان، ہم نے 'pd.factorize()' طریقہ کہا ہے جہاں 'x' 'prog' DataFrame سے 'object' datatype کے ساتھ کوئی بھی قدر ہو سکتا ہے۔ اس طرح، کوڈ کی یہ پوری لائن 'prog['concat_col'] = prog['concat_col'].apply(lambda x : pd.factorize(x)[0])' کے طور پر لکھی گئی ہے۔ فیکٹرائز طریقہ اس کے ساتھ ایک قدر لے گا۔ ایک 'آبجیکٹ' ڈیٹا ٹائپ کریں اور اسے 'int' میں تبدیل کریں۔ حتمی آؤٹ پٹ کو 'print()' فنکشن کو کال کرکے 'prog' متغیر کو اس کے پیرامیٹر کے طور پر پاس کر کے دکھایا جا سکتا ہے۔


اپ ڈیٹ کردہ ڈیٹا فریم میں، ہم 'گروپ' اور 'پوزیشن' کالم کی قدروں کا مشاہدہ کر سکتے ہیں جو ابتدائی طور پر واضح تھے، یعنی آبجیکٹ۔ اب بھی اپ ڈیٹ شدہ آؤٹ پٹ ڈیٹا فریم میں، دونوں کالموں میں عددی اقدار ہیں۔ 'گروپ' کالم میں، 'X' کو '0' سے اور 'Y' کو '1' سے بدل دیا گیا ہے۔ جبکہ 'پوزیشن' کالم 'A' کو '0' سے، 'C' کو '1' سے، 'D' کو '2' سے اور 'B' کو '3' سے بدل دیا گیا ہے۔


اب، آئیے اپ ڈیٹ شدہ ڈیٹا ٹائپس کی تصدیق کرتے ہیں۔


درج ذیل تمام کالموں میں 'int64' ڈیٹا ٹائپ ہے۔

نتیجہ

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