البرمجة

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

التعامل مع تكرار الصفوف في إطار البيانات باستخدام مكتبة Pandas في لغة Python يمكن أن يكون تحدًا، ولكن يمكن حله بشكل فعّال باستخدام مجموعة من الوظائف المتاحة في Pandas. هدفك هو دمج الصفوف المكررة بناءً على القيم في عمود معين (في هذه الحالة “Name” و “Sid”)، ولكن دون جمع القيم في العمود “Revenue”.

أحد الطرق الفعّالة لتحقيق ذلك هو استخدام وظيفة groupby() بالتزامن مع agg() لتعريف كيفية تجميع القيم لكل عمود. في هذا السياق، يمكنك استخدام join() لدمج النصوص في عمود “Use_Case” بفصلها بفاصلة.

فلنقم بكتابة سيناريو عملي لحل هذه المشكلة:

python
import pandas as pd # الإطار البياني الأصلي data = {'Name': ['A', 'A', 'B', 'C', 'C', 'C'], 'Sid': ['xx01', 'xx01', 'xx02', 'xx03', 'xx03', 'xx03'], 'Use_Case': ['Voice', 'SMS', 'Voice', 'Voice', 'SMS', 'Video'], 'Revenue': [10.00, 10.00, 5.00, 15.00, 15.00, 15.00]} df = pd.DataFrame(data) # استخدام groupby() و agg() لتجميع البيانات result = df.groupby(['Name', 'Sid']).agg({'Use_Case': lambda x: ', '.join(x), 'Revenue': 'first'}).reset_index() # طباعة النتيجة print(result)

بهذا الشكل، تحققنا من تجميع الصفوف المكررة باستخدام “Name” و “Sid” كمفتاح، واستخدمنا دالة lambda لدمج القيم في عمود “Use_Case” باستخدام فاصلة. كما قمنا بتحديد أن القيمة في عمود “Revenue” تكون القيمة الأولى باستخدام first().

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

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

في هذا السياق، يجدر بنا فهم الوظائف التي تم استخدامها في الحل وكيف تساهم في حل المشكلة:

  1. groupby(['Name', 'Sid']): تقوم هذه الوظيفة بتجميع الصفوف بناءً على قيم العمودين “Name” و “Sid”، مما يسمح بتمييز الصفوف المكررة.

  2. agg({'Use_Case': lambda x: ', '.join(x), 'Revenue': 'first'}): هذه الوظيفة تستخدم لتحديد كيفية تجميع القيم في الأعمدة المختلفة. في هذا السياق، تم استخدام lambda لتجميع القيم في عمود “Use_Case” عن طريق دمجها باستخدام فاصلة. أما في عمود “Revenue”، تم اختيار القيمة الأولى باستخدام first().

  3. reset_index(): تُستخدم هذه الوظيفة لإعادة تعيين فهرس الصفوف بعد التجميع، مما يؤدي إلى الحصول على إطار بيانات نظيف وجاهز للاستخدام.

تحقق هذه الطريقة من الحفاظ على بياناتك بشكل فعّال وتجنب تكرار الصفوف بناءً على المفتاح المحدد، وفي نفس الوقت، تمكنك من دمج القيم في العمود “Use_Case” بشكل مناسب. تكون النتيجة هي إطار بيانات جديد يحتوي على صف واحد لكل مجموعة فريدة من “Name” و “Sid”، ويحتوي على القيم المراد دمجها.

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

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

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!