كيفية إنشاء عمود جديد بناءً على شرط في 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
يمكنك العثور على المزيد من دروس بايثون هنا .