البرمجة

تحليل تغيير القيم في إطار بيانات Pandas

لدى مجموعة Pandas العديد من الأدوات القوية للتلاعب بالبيانات، ومن بين هذه الأدوات توجد وظيفة diff() التي تستخدم عادةً لحساب الفروقات بين القيم في الأعمدة الرقمية. ومع ذلك، عند التعامل مع القيم النصية، لا يمكن استخدام diff() بشكل مباشر للكشف عن التغييرات في القيم.

لحل هذه المشكلة، يمكن استخدام وظيفة shift() مع تحويل القيم النصية إلى قيم رقمية من خلال تعيين رموز فريدة لكل قيمة نصية ممكنة. يمكن ذلك عن طريق إنشاء قاموس للتعيين بين القيم النصية والقيم الرقمية، ثم استخدام هذا القاموس لتحويل القيم. بعد ذلك، يمكن استخدام وظيفة diff() لحساب الفروقات بين القيم الرقمية.

في الخطوات التالية، سأوضح كيفية تنفيذ هذه العملية بالتفصيل:

  1. إنشاء قاموس لتعيين قيم رقمية فريدة لكل قيمة نصية ممكنة في العمود.
  2. تحويل القيم النصية إلى قيم رقمية باستخدام القاموس.
  3. استخدام وظيفة shift() لمقارنة القيم الرقمية الحالية بالقيم الرقمية السابقة.
  4. تطبيق شرط لتحديد المواقع التي تغيرت فيها القيم.
  5. تحويل القيم الرقمية الناتجة إلى قيم نصية باستخدام القاموس.

لنبدأ بتنفيذ الخطوات المذكورة أعلاه باستخدام مكتبة Pandas:

المزيد من المعلومات

بدأنا الآن في تنفيذ الخطوات المذكورة أعلاه باستخدام مكتبة Pandas:

أولاً، نقوم بإنشاء قاموس لتعيين قيم رقمية فريدة لكل قيمة نصية ممكنة في العمود. على سبيل المثال، إذا كانت القيم النصية هي “Blue”، “Red”، و “Yellow”، يمكننا تعيين لكل منها قيمة رقمية فريدة، مثل 1، 2، و 3 على التوالي.

python
value_mapping = {'Blue': 1, 'Red': 2, 'Yellow': 3}

ثم، نقوم بتحويل القيم النصية إلى قيم رقمية باستخدام القاموس المعرف سابقًا. يمكن القيام بذلك باستخدام الوظيفة map() في Pandas.

python
dataframe['ColumnB_numeric'] = dataframe['ColumnB'].map(value_mapping)

بعد ذلك، نستخدم وظيفة shift() لمقارنة القيم الرقمية الحالية بالقيم الرقمية السابقة، وذلك للعثور على الفروقات بينها.

python
dataframe['changed_numeric'] = dataframe['ColumnB_numeric'].diff()

ثم، نطبق شرطًا لتحديد المواقع التي تغيرت فيها القيم، حيث نراقب الفروقات ونرغب في تحديد المواقع التي قيمتها غير صفرية.

python
dataframe['changed'] = dataframe['changed_numeric'].apply(lambda x: 1 if x != 0 else 0)

وأخيرًا، نقوم بتحويل القيم الرقمية الناتجة إلى قيم نصية باستخدام القاموس.

python
dataframe['changed'] = dataframe['changed'].map({1: 'Yes', 0: 'No'})

الآن، بعد تنفيذ هذه الخطوات، سيتم إضافة عمود إلى الإطار البيانات يحتوي على قيم “Yes” في المواقع التي تغيرت فيها القيم، وقيم “No” في المواقع التي لم تتغير فيها القيم.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر