كيفية المقارنة بين عمودين في الباندا: مع الأمثلة


في كثير من الأحيان قد ترغب في مقارنة عمودين في Pandas DataFrame وكتابة نتائج المقارنة في عمود ثالث.

يمكنك القيام بذلك بسهولة باستخدام بناء الجملة التالي:

 conditions=[(condition1),(condition2)]
choices=[" choice1 "," choice2 "]

df[" new_column_name "]=np. select (conditions, choices, default)

إليك ما يفعله هذا الرمز:

  • الشروط هي شروط التحقق بين العمودين
  • الاختيارات هي النتائج التي يتم إرجاعها بناءً على الشروط
  • يتم استخدام np.select لإرجاع النتائج في العمود الجديد

يوضح المثال التالي كيفية استخدام هذا الرمز عمليًا.

مثال: قارن بين عمودين في Pandas

لنفترض أن لدينا DataFrame التالي الذي يوضح عدد الأهداف التي سجلها فريقان لكرة القدم في خمس مباريات مختلفة:

 import numpy as np
import pandas as pd

#createDataFrame
df = pd. DataFrame ({' A_points ': [1, 3, 3, 3, 5],
                   ' B_points ': [4, 5, 2, 3, 2]})
             
#view DataFrame      
df

          A_points B_points
0 1 4
1 3 5
2 3 2
3 3 3
4 5 2

يمكننا استخدام الكود التالي لمقارنة عدد الأهداف لكل صف وعرض الفائز بالمباراة في عمود ثالث:

 #define conditions
conditions = [df[' A_points '] > df[' B_points '], 
              df[' A_points '] < df[' B_points ']]

#define choices
choices = [' A ', ' B ']

#create new column in DataFrame that displays results of comparisons
df[' winner '] = np. select (conditions, choices, default=' Tie ')

#view the DataFrame
df

          A_points B_points winner
0 1 4 B
1 3 5 B
2 3 2 A
3 3 3 Tie
4 5 2 A

يتم عرض نتائج المقارنة في العمود الجديد المسمى الفائز .

تعليقات

فيما يلي بعض الأشياء التي يجب وضعها في الاعتبار عند مقارنة عمودين في Pandas DataFrame:

  • يجب أن يكون عدد الشروط والاختيارات متساويا.
  • يحدد الإعداد الافتراضي القيمة التي سيتم عرضها في العمود الجديد في حالة عدم استيفاء أي من الشروط.
  • NumPy و Pandas مطلوبان حتى يعمل هذا الرمز.

مصادر إضافية

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

كيفية إعادة تسمية الأعمدة في الباندا
كيفية إضافة عمود إلى Pandas DataFrame
كيفية تغيير ترتيب الأعمدة في Pandas DataFrame

Add a Comment

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