البرمجة

تجنب ظهور قيم NaN في دمج بيانات بانداس

عندما تقوم بدمج إطاري بيانات في بانداس (Pandas) باستخدام الدالة concat، يمكن أن يحدث ظهور قيم “NaN” إذا كان هناك أي اختلاف في الفهارس (الفهرس الذي يُستخدم لتنظيم البيانات في إطار البيانات). في حالتك، عند الانضمام باستخدام الوضع الافتراضي (join=’outer’)، يمكن أن يؤدي ذلك إلى ظهور القيم “NaN” في الصفوف التي لا تتوافق في الفهارس بين الإطارين.

لحل هذه المشكلة ومنع ظهور القيم “NaN”، يمكنك استخدام الوضع الداخلي (join=’inner’) عند استخدام الدالة concat. في هذه الحالة، سيتم فقط الاحتفاظ بالصفوف التي تتوافق في الفهارس بين الإطارين، وبالتالي لن يتم إدخال قيم “NaN”.

لإصلاح المشكلة ومنع ظهور القيم “NaN”، يمكنك تغيير الوضع إلى الداخلي كما يلي:

python
foo = pd.concat([initId, ypred], join='inner', axis=1)

سيؤدي ذلك إلى الاحتفاظ فقط بالصفوف التي تتوافق في الفهارس بين الإطارين، دون إدخال أي قيم “NaN”.

بالنسبة لمثال الاختبار الذي قمت به، فقد عمل بشكل صحيح لأن الإطارين لديك كانتا لنفس الشكل، ولم يكن هناك أي اختلاف في الفهارس بينهما، وبالتالي لم تظهر قيم “NaN”.

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

بالطبع، سنستكمل المقال بمزيد من التوضيحات والاستراتيجيات لتجنب ظهور قيم “NaN” عند استخدام دالة concat في بانداس.

عند العمل مع بيانات تحتوي على عمليات دمج متعددة، يمكن أن يكون الفهرس أمرًا حاسمًا لضمان دقة العملية. إليك بعض الاستراتيجيات الإضافية التي يمكن اتخاذها لتجنب مشكلة قيم “NaN”:

  1. التحقق من الفهرس قبل الدمج:
    قبل دمج الإطارين، يمكنك التحقق من الفهارس الخاصة بهما للتأكد من تطابقها. يمكنك استخدام الدالة equals() للتحقق من تطابق الفهرس بين الإطارين، وفي حالة عدم التطابق يمكن اتخاذ إجراءات لتصحيح الفهارس قبل الدمج.

    python
    if not initId.index.equals(ypred.index): # اتخاذ إجراءات لتصحيح الفهارس قبل الدمج
  2. تغيير الفهرس:
    في حالة عدم تطابق الفهارس، يمكنك تغيير الفهرس ليكون متساويًا بين الإطارين قبل الدمج. يمكنك استخدام الدالة reindex() لذلك.

    python
    ypred = ypred.reindex(initId.index)
  3. التحقق من الفهرس بعد الدمج:
    بعد الدمج، يمكنك التحقق مرة أخرى من الفهارس لضمان عدم وجود أي تباينات. يمكن ذلك باستخدام الدالة equals() أو ببساطة عن طريق فحص الفهرس بشكل مباشر.

    python
    if not foo.index.equals(initId.index): # اتخاذ إجراءات لمعالجة أي تباينات في الفهارس
  4. التحقق من وجود قيم “NaN” بعد الدمج:
    بعد الدمج، يمكنك التحقق من وجود قيم “NaN” باستخدام الدالة isnull() لضمان عدم وجود قيم مفقودة غير متوقعة.

    python
    if foo.isnull().values.any(): # اتخاذ إجراءات لمعالجة أي قيم "NaN"

باستخدام هذه الاستراتيجيات، يمكنك تحسين عملية الدمج وتقليل احتمال ظهور قيم “NaN” بين الإطارين المختلفة في بانداس.

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

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

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

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