كيفية إنشاء عمود جديد بناءً على شرط في pandas


غالبًا قد ترغب في إنشاء عمود جديد في pandas DataFrame بناءً على شروط معينة.

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

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#view DataFrame
df

rating points assists rebounds
0 90 25 5 11
1 85 20 7 8
2 82 14 7 10
3 88 16 8 6
4 94 27 5 6
5 90 20 7 9
6 76 12 6 6
7 75 15 9 10
8 87 14 9 10
9 86 19 5 7

المثال 1: إنشاء عمود جديد بقيم ثنائية

يوضح التعليمة البرمجية التالية كيفية إنشاء عمود جديد يسمى “جيد” حيث تكون القيمة “نعم” إذا كانت النقاط في صف معين أكبر من 20 و”لا” بخلاف ذلك:

 #create new column titled 'Good'
df['Good'] = np. where (df['points']>20, ' yes ', ' no ')

#view DataFrame 
df

        rating points assists rebounds Good
0 90 25 5 11 yes
1 85 20 7 8 no
2 82 14 7 10 no
3 88 16 8 6 no
4 94 27 5 6 yes
5 90 20 7 9 no
6 76 12 6 6 no
7 75 15 9 10 no
8 87 14 9 10 no
9 86 19 5 7 no

المثال 2: إنشاء عمود جديد بقيم متعددة

يوضح الكود التالي كيفية إنشاء عمود جديد يسمى “جيد” حيث تكون القيمة:

  • “نعم” إذا كانت النقاط ≥ 25
  • “ربما” إذا كانت 15 ≥ نقطة <25
  • “لا” إذا كانت النقاط <15
 #define function for classifying players based on points
def f(row):
    if row['points'] < 15:
        val = 'no'
    elif row['points'] < 25:
        val = 'maybe'
    else :
        val = 'yes'
    return val

#create new column 'Good' using the function above
df['Good'] = df. apply (f, axis=1)

#view DataFrame 
df

        rating points assists rebounds Good
0 90 25 5 11 yes
1 85 20 7 8 maybe
2 82 14 7 10 no
3 88 16 8 6 maybe
4 94 27 5 6 yes
5 90 20 7 9 maybe
6 76 12 6 6 no
7 75 15 9 10 maybe
8 87 14 9 10 no
9 86 19 5 7 maybe

المثال 3: قم بإنشاء عمود جديد بناءً على مقارنة بعمود موجود

يوضح الكود التالي كيفية إنشاء عمود جديد يسمى “assist_more” حيث تكون القيمة:

  • “نعم” في حالة التمريرات الحاسمة > المرتدات.
  • «لا» غير ذلك.
 #create new column titled 'assist_more'
df['assist_more'] = np. where (df['assists']>df['rebounds'], ' yes ', ' no ')

#view DataFrame 
df

        rating points assists rebounds assist_more
0 90 25 5 11 no
1 85 20 7 8 no
2 82 14 7 10 no
3 88 16 8 6 yes
4 94 27 5 6 no
5 90 20 7 9 no
6 76 12 6 6 no
7 75 15 9 10 no
8 87 14 9 10 no
9 86 19 5 7 no

يمكنك العثور على المزيد من دروس بايثون هنا .

Add a Comment

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