"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية دمج إطارات بيانات Pandas بكفاءة بناءً على حالة النطاق؟

كيفية دمج إطارات بيانات Pandas بكفاءة بناءً على حالة النطاق؟

تم النشر بتاريخ 2024-11-21
تصفح:810

How to Efficiently Merge Pandas DataFrames Based on a Range Condition?

الانضمام حسب النطاق في Pandas

في معالجة البيانات باستخدام Pandas، إحدى المهام الشائعة هي دمج إطاري بيانات بناءً على شرط النطاق. يتضمن ذلك تحديد الصفوف في إطار البيانات A حيث تقع القيم الموجودة في عمود معين ضمن نطاق محدد في إطار البيانات B.

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

الحل البديل هو استخدام البث numpy، وهو أسلوب قوي لتنفيذ العمليات الحكيمة على المصفوفات. من خلال تحويل الأعمدة ذات الصلة في إطاري البيانات A وB إلى صفائف numpy، يمكننا تطبيق عوامل تشغيل منطقية لمقارنة A_value بقيم B_low وB_high لتحديد الصفوف التي تستوفي شرط النطاق.

import numpy as np

# Convert to numpy arrays
a = A.A_value.values
bh = B.B_high.values
bl = B.B_low.values

# Find intersecting indices
i, j = np.where((a[:, None] >= bl) & (a[:, None]  

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3