تقوم Pandas بتحويل القيم الفئوية إلى قيم Int

Tqwm Pandas Bthwyl Alqym Alfywyt Aly Qym Int



تتضمن مجموعات البيانات الخاصة بتنفيذ التعلم الآلي كلاً من المتغيرات العددية والفئوية. المتغيرات الفئوية هي بيانات من نوع السلسلة يفهمها البشر بسهولة. من ناحية أخرى ، لا تستطيع الآلات فهم المدخلات الفئوية مباشرة. وبالتالي ، يجب تحويل المحتوى الفئوي إلى قيم عددية يمكن للآلات تفسيرها.

طرق تحويل Categorical إلى Int

تتوفر التقنيات المتوفرة في 'الباندا' لتحويل القيم الفئوية إلى القيم الأساسية لإطار DataFrame هنا:

    • طريقة DataFrame.replace ()
    • طريقة DataFrame.apply (Factize ())

سنستخدم هذه الطرق في هذه المقالة وسنشرح بالتفصيل كيفية استخدام كلتا الطريقتين في 'الباندا'.







المثال رقم 1: استخدام طريقة استبدال الباندا ()

يمكن تحويل القيم الفئوية في DataFrame إلى int باستخدام طريقة pandas “DataFrame.replace ()”. سوف نتعلم هنا لاستخدام هذه الطريقة.



استخدمنا أداة 'Spyder' لتنفيذ هذه التقنية على النحو الأمثل في Python. لبدء كتابة البرنامج النصي ، افتح ملف Python جديدًا في أداة 'Spyder'. أهم متطلبات كتابة النص هو استيراد المكتبات المناسبة. نظرًا لأنه يتعين علينا تنفيذ طريقة 'الباندا' ، فسنحصل على 'استيراد الباندا كـ pd' للوصول إلى ميزات 'الباندا'. ثم نبدأ كود بايثون الأساسي الخاص بنا. لقد أنشأنا DataFrame باستخدام طريقة “pd.DataFrame ()”. تتم تهيئة DataFrame بثلاثة أعمدة 'الاسم' و 'الدرجة' و 'الدخل'. تخزن جميع أعمدة DataFrame نفس طول القيم.



يحتوي العمود الأول 'الاسم' على ثماني قيم هي 'بوش' و 'ألبرت' و 'هاري' و 'بيتر' و 'إيما' و 'نيوتن' و 'سميث' و 'إلسا'. العمود الثاني ، 'الدرجة' ، يخزن أيضًا ثماني قيم فئوية ، وهي 'BS' و 'MS' و 'MS' و 'BS' و 'BS' و 'BS' و 'MS' و 'MS'. يحتوي العمود الأخير 'الدخل' على ثماني قيم صحيحة '60000' و '80000' و '75000' و '45000' و '56000' و '65000' و '55000' و '70000'. لقد أنشأنا كائن DataFrame 'staff' لتخزين مخرجات استدعاء الوظيفة 'pd.DataFrame ()'. لعرض DataFrame الأولي الخاص بنا ، استخدمنا طريقة 'print ()' مع اسم DataFrame 'staff' كمعامل لها في السطر الأخير من البرنامج النصي.






لعرض المخرجات على الجهاز ، استخدم زر 'Run File' في أداة 'Spyder' أو اضغط على مفتاحي Shift + Enter. يظهر الإخراج المعروض على المحطة الطرفية DataFrame مع ثلاثة أعمدة تم إنشاؤها بنجاح.


الآن ، تم إنشاء DataFrame الخاص بنا ، وعلينا تطبيق التقنية المطلوبة عليه. سيتم استخدام طريقة الباندا 'DataFrame.replace ()' لتحويل القيم الفئوية لعمود محدد إلى قيم عدد صحيح بحيث يمكن للآلات جعلها قابلة للقراءة.



لقد قدمنا ​​اسم DataFrame مع اسم العمود المحدد الذي نحتاج إلى استبدال قيمه ، وهو 'طاقم العمل [' درجة ']'. نريد استبدال قيم العمود 'الدرجة' ، الذي يحتوي على قيم فئوية ، بقيم عدد صحيح. ثم يتم استدعاء طريقة “.replace ()”. لقد مررناها إلى مجموعتين ؛ الأول يحتوي على القيمتين الفئويتين '[' BS '،' MS ']' التي استخرجناها من عمود 'الدرجة'. كما ترى ، يستخدم عمود 'الدرجة' هاتين القيمتين بشكل متكرر. إذا كانت لدينا قيمة ثالثة ، فلا بد أننا ذكرناها أيضًا. تحتوي المجموعة الثانية على قيمتين int '[0 ، 1]' ، والتي ستحل محل قيم المجموعة الأولى على التوالي. تم تعيين المعلمة الأخرى ، 'inplace' ، على 'True' ، مما يتيح استبدال القيم. إذا تم التعيين على 'False' ، فسيتم تعطيل الاستبدال. أخيرًا ، استخدمنا طريقة 'print ()' لعرض DataFrame 'للموظفين' المحدّث.


يحتوي DataFrame الناتج على قيم أعداد صحيحة في عمود 'الدرجة'. يتم استبدال القيمة 'BS' بـ '0s' ، ويتم استبدال 'MS' بـ '1s'.


يمكنك حتى التحقق من نوع البيانات لكل عمود باستخدام الخاصية 'dataframe.dtype'. سيوفر لنا هذا أنواع بيانات لجميع الأعمدة في DataFrame المحدد.


هنا ، حصلنا على أنواع بيانات DataFrame الخاصة بنا. يمكننا أن نرى تغيير نوع بيانات عمود 'الدرجة' إلى 'int64'.

مثال رقم 2: استخدام طريقة تطبيق Pandas ()

الطريقة الأخرى التي قدمتها لنا الباندا هي وظيفة 'DataFrame.apply ()' لتحويل القيم الفئوية إلى أعداد صحيحة. في المثال السابق ، تعلمنا تحويل عمود فئوي واحد إلى عدد صحيح. سنرى الآن كيفية تحويل جميع الأعمدة الفئوية في DataFrame إلى عدد صحيح.

بداية من التطبيق العملي ، يجب علينا استيراد المكتبة الأساسية لهذه الطريقة ، وهي الباندا. لقد استخدمنا البرنامج النصي 'import pandas as pd' لاستيراد الباندا إلى ملف Python الخاص بنا في أداة 'Spyder' ، مما سيسمح لنا بالوصول إلى وحدات الباندا باستخدام 'pd'. استخدمنا الوظيفة “pd.DataFrame ()” لبناء 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'.

لقد أنشأنا كائن DataFrame 'prog' وقمنا بتعيينه ناتج استدعاء طريقة 'pd.DataFrame ()'. لذلك ، سيتم تخزين إطار DataFrame الناتج الذي تم إنشاؤه من 'pd.DataFrame ()' في 'prog'. الآن ، يمكننا الوصول إلى DataFrame باستخدام هذا الكائن. لعرض DataFrame هذا ، استخدمنا طريقة 'print ()' مع كائن DataFrame 'prog' كمعامل لها.


عند تنفيذ برنامج Python السابق ، سيتم عرض DataFrame بأربعة أعمدة على الجهاز.


لتحويل عدة أعمدة فئوية إلى أعداد صحيحة ، اتبعنا هذه التقنية. يتعين علينا أولاً تحديد جميع الأعمدة التي تحتوي على نوع بيانات الكائن من خلال استخدام طريقة الباندا 'DataFrame.select_dtypes (). column'. عندما نستخدمه في البرنامج النصي الخاص بنا كما هو مطلوب ، سيكون 'prog.select_dtypes ([' object ']. أعمدة'. سيحدد جميع الأعمدة التي تحتوي على 'كائن' من نوع البيانات في 'برنامج' DataFrame. لقد أنشأنا متغيرًا 'concate_col' لتخزين ناتج هذه الطريقة. يمكننا الآن الوصول إلى أعمدة نوع البيانات 'الكائن' ببساطة باستخدام هذا المتغير 'concat_col'.

الآن ، لتحويل هذه الأعمدة إلى أعداد صحيحة ، استخدمنا الباندا “DataFrame.apply ()” مع طريقة “pd.factorize ()”. لقد استخدمنا المتغير “concat_col” مع اسم DataFrame ثم تم استدعاء طريقة “.apply ()”. بين قوسي طريقة '.apply' ، قمنا باستدعاء طريقة 'pd.factorize ()' حيث يمكن أن يكون 'x' أي قيمة من 'prog' DataFrame مع نوع بيانات 'الكائن'. وبالتالي ، فإن هذا السطر الكامل من الكود مكتوب كـ 'prog ['concat_col'] = prog ['concat_col']. طبق (lambda x: pd.factorize (x) [0])'. تأخذ طريقة التحليل قيمة مع نوع بيانات 'كائن' وتحويله إلى 'int'. يمكن عرض المخرجات النهائية عن طريق استدعاء وظيفة 'print ()' بتمرير المتغير 'prog' كمعامل لها.


في DataFrame المحدث ، يمكننا ملاحظة أن قيم أعمدة 'المجموعة' و 'الموضع' كانت في البداية فئوية ، أي كائن. لا يزال في DataFrame الإخراج المحدث ، كلا العمودين لهما قيم عدد صحيح. في عمود 'المجموعة' ، يتم استبدال 'X' بـ '0' و 'Y' بـ '1'. في حين تم استبدال عمود 'الموضع' 'A' بـ '0' و 'C' بـ '1' و 'D' بـ '2' و 'B' بـ '3'.


الآن ، دعنا نتحقق من أنواع البيانات المحدثة.


تحتوي جميع الأعمدة التالية على نوع بيانات 'int64'.

استنتاج

يدور دليلنا حول تحويل القيم الفئوية إلى قيم عددية بحيث يمكن للآلات أن تجعلها مفهومة لأن نوع بيانات الكائن لا يمكن معالجته بواسطتها. لقد قدمنا ​​لك الطريقتين اللتين تتميز بهما مكتبة 'الباندا' للحصول على نوع البيانات المطلوب. أيضًا ، من خلال التنفيذ العملي لأكواد الأمثلة التي تعمل على أداة 'Spyder' ، شاركنا نتيجة كل مثال. أخيرًا ، تناولنا بالتفصيل كل خطوة لتحقيق النتيجة المرجوة.