الباندا: كيفية دمج القيم من أعمدة متعددة في عمود واحد


يمكنك استخدام الطرق التالية لتجميع القيم من أعمدة متعددة من pandas DataFrame في عمود واحد:

الطريقة الأولى: دمج القيم حسب ترتيب الأعمدة الافتراضي

 df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

الطريقة الثانية: دمج القيم باستخدام ترتيب أعمدة محدد

 df[' coalesce '] = df[[' col3 ', ' col1 ', ' col2 ']]. bfill (axis= 1 ). iloc [:, 0]

توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' points ': [np.nan, np.nan, 19, np.nan, 14],
                   ' assists ': [np.nan, 7, 7, 9, np.nan],
                   ' rebounds ': [3, 4, np.nan, np.nan, 6]})

#view DataFrame
print (df)

   points assists rebounds
0 NaN NaN 3.0
1 NaN 7.0 4.0
2 19.0 7.0 NaN
3 NaN 9.0 NaN
4 14.0 NaN 6.0

الطريقة الأولى: دمج القيم حسب ترتيب الأعمدة الافتراضي

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

 #create new column that contains first non-null value from three existing columns 
df[' coalesce '] = df. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 19.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 14.0

إليك كيفية اختيار القيمة الموجودة في عمود الدمج :

  • السطر الأول: القيمة الأولى غير الصفرية كانت 3.0 .
  • السطر الثاني: القيمة الأولى غير الصفرية كانت 7.0 .
  • السطر الثالث: القيمة الأولى غير الصفرية كانت 19.0 .
  • السطر الرابع: القيمة الأولى غير الصفرية كانت 9.0 .
  • السطر الخامس: القيمة الأولى غير الصفرية كانت 14.0 .

الطريقة الثانية: دمج القيم باستخدام ترتيب أعمدة محدد

الكود التالي يوضح كيفية دمج القيم في الأعمدة الثلاثة من خلال تحليل الأعمدة بالترتيب التالي: التمريرات الحاسمة، المرتدات، النقاط.

 #coalesce values in specific column order
df[' coalesce '] = df[[' assists ', ' rebounds ', ' points ']]. bfill (axis= 1 ). iloc [:, 0]

#view updated DataFrame
print (df)

   points assists rebounds coalesce
0 NaN NaN 3.0 3.0
1 NaN 7.0 4.0 7.0
2 19.0 7.0 NaN 7.0
3 NaN 9.0 NaN 9.0
4 14.0 NaN 6.0 6.0

فيما يلي المنطق الذي تم استخدامه لتحديد القيمة التي سيتم وضعها في عمود الدمج :

  • إذا كانت القيمة الموجودة في العمود المساعد ليست صفرًا، فاستخدم هذه القيمة.
  • بخلاف ذلك، إذا كانت القيمة الموجودة في عمود الارتدادات ليست صفرًا، فاستخدم تلك القيمة.
  • بخلاف ذلك، إذا كانت القيمة الموجودة في عمود النقاط ليست صفرًا، فاستخدم هذه القيمة.

ملاحظة : يمكنك العثور على الوثائق الكاملة للدالة bfill() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

كيفية الجمع بين عمودين في الباندا
كيفية جمع أعمدة محددة في الباندا
كيفية الفرز حسب أعمدة متعددة في الباندا

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *