اذهب إلى المحتوى
  • 0

استخراج أكبر قيمة من داخل DataFrame 

Ahmed Ahmed64

السؤال

السلام عليكم إخوتي

مساعدة في كتابة كود يقوم بالوظيفة التالية

لدي ملف إكسل يحتوي على مجموعة من الأعمدة والصفوف

أحتاج أن أستخرج العمود الثالث والرابع و الخامس على سبيل المثال وأكون من ذلك DataFrame  باستخدام مكتبة pandas

بعد تكوين DataFrame

أريد أن أقوم بعملية قراءه صف صف من هذه DataFrame للأعمدة المتكونة منها وأن أستخرج القيمة الأكبر والتخزين في عمود جديد 

نوضح لكم أكثر

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

أقرأ الصف الثاني وأقارن بين الثلاثة الأعمدة التي تكونت منها وأستخرج أكبر قيمة ومن ثم تخزينها على عمود جديد الذي تم تكوينه سابقا

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

حسنًا، هذا الكود قد يحقق المهمة المطلوبة:

import pandas as pd

# قراءة الملف الإكسل
df = pd.read_excel('file.xlsx', usecols=[2,3,4]) 

# تكوين عمود جديد لتخزين أكبر القيم في كل صف
df['max'] = df.max(axis=1)

# حفظ النتيجة
df.to_excel('output.xlsx', index=False) # index=False لعدم حفظ الأرقام الخاصة بالصفوف
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

نعم بالطبع سأكتب لك الكود الجديد ولكن الاختلاف في الكود صغير
اليك مثال اخر:

import pandas as pd

# قراءة الملف الإكسل
df = pd.read_excel('file.xlsx') //  تم تعديله

# تكوين عمود جديد لتخزين أكبر القيم في كل صف
df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1) // تم تعديله

# حفظ النتيجة
df.to_excel('output.xlsx', index=False) # index=False لعدم حفظ الأرقام الخاصة بالصفوف

`iloc` هي وسيلة للوصول إلى البيانات في DataFrame باستخدام تعيين الفهرس (integer-location based indexing). يتيح لك `iloc` تحديد الصفوف والأعمدة بناءً على مواقعها بالفهرس، بدلاً من استخدام الأسماء.

تستخدم `iloc` بهذه الطريقه:

data.iloc[row_index, column_index]

بالمثال السابق، `df.iloc[:, 2:5]` يعني استخراج كل الصفوف والأعمدة من الثالثة (العمود 2) إلى الخامسة (العمود 4).

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 18 دقائق مضت قال Khaled Osama3:

نعم بالطبع سأكتب لك الكود الجديد ولكن الاختلاف في الكود صغير
اليك مثال اخر:

import pandas as pd

# قراءة الملف الإكسل
df = pd.read_excel('file.xlsx') //  تم تعديله

# تكوين عمود جديد لتخزين أكبر القيم في كل صف
df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1) // تم تعديله

# حفظ النتيجة
df.to_excel('output.xlsx', index=False) # index=False لعدم حفظ الأرقام الخاصة بالصفوف

`iloc` هي وسيلة للوصول إلى البيانات في DataFrame باستخدام تعيين الفهرس (integer-location based indexing). يتيح لك `iloc` تحديد الصفوف والأعمدة بناءً على مواقعها بالفهرس، بدلاً من استخدام الأسماء.

تستخدم `iloc` بهذه الطريقه:

data.iloc[row_index, column_index]

بالمثال السابق، `df.iloc[:, 2:5]` يعني استخراج كل الصفوف والأعمدة من الثالثة (العمود 2) إلى الخامسة (العمود 4).

جيد جدا هذا المثال

هنا الأن كيف يمكن أن أستخرج القيمة الأكبر 

كما فعلت بالمثال الأول

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 4 دقائق مضت قال Ahmed Ahmed64:

جيد جدا هذا المثال

هنا الأن كيف يمكن أن أستخرج القيمة الأكبر 

كما فعلت بالمثال الأول

عن طريق استخدام فانكشن max و تخزين القيمه الاكبر في عمود اسمه "أكبر_قيمة" 

df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1) // تم تعديله

ولقد استخدمنا axis = 1 لكي ينظر لمحور X الافقي, يعني العثور على القيمة القصوى (الأكبر) في كل صف .

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 18 دقائق مضت قال Khaled Osama3:

عن طريق استخدام فانكشن max و تخزين القيمه الاكبر في عمود اسمه "أكبر_قيمة" 

df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1) // تم تعديله

ولقد استخدمنا axis = 1 لكي ينظر لمحور X الافقي, يعني العثور على القيمة القصوى (الأكبر) في كل صف .

أخي هل يمكن أن أستخرج بين القيمة الأكبر بوجود خلية فارغة

أي مثلا عمود به قيمة 20 مثلا والعمود الأخر قيمة فارغة

بحيث تكون النتيجة 20

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

 

بتاريخ 27 دقائق مضت قال Ahmed Ahmed64:

أخي هل يمكن أن أستخرج بين القيمة الأكبر بوجود خلية فارغة

أي مثلا عمود به قيمة 20 مثلا والعمود الأخر قيمة فارغة

بحيث تكون النتيجة 20

بالطبع هذا الكود بالاعلي يفعل هذا عندما يجد قيمه فارغه سياخذ القيمه الاعلي
ويمكنك اضافه هذا السطر لملئ كل القيم الفارغه بقيمه = 0 

df.fillna(0, inplace=True)
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 24 دقائق مضت قال Khaled Osama3:

 

بالطبع هذا الكود بالاعلي يفعل هذا عندما يجد قيمه فارغه سياخذ القيمه الاعلي
ويمكنك اضافه هذا السطر لملئ كل القيم الفارغه بقيمه = 0 

df.fillna(0, inplace=True)

رائع أخي

لو سمحت لدي سؤال أخر

بنفس النمط السابق أحتاج أن أستخدم دالة if

حيث مثلا عند استخدام  max  بين عمودين ووجدت القيمة أكبر من 50 مثلا 

أريد أن يتجاهل القيمة الكبرى ويطبع مكانها 50

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 4 ساعة قال Ahmed Ahmed64:

رائع أخي

لو سمحت لدي سؤال أخر

بنفس النمط السابق أحتاج أن أستخدم دالة if

حيث مثلا عند استخدام  max  بين عمودين ووجدت القيمة أكبر من 50 مثلا 

أريد أن يتجاهل القيمة الكبرى ويطبع مكانها 50

حسنا اخي يمكنك استخدام داله apply في مكتبه pandas بمساعده داله lambda وتعديل سطر الكود لهذا 
 

df['أكبر_قيمة'] = df.iloc[:, 2:5].max(axis=1).apply(lambda x: 50 if x > 50 else x)

نحن هنا اضفنا شرط لو كانت القيمه الكبري اكبر من 50 ستظل 50, لكن لو اصغر سياخذ القيمه الكبري 

حل اخر يمكنك استخدام for loop سيتكرر هذا الكود لكل صف في الداتا يقوم أولاً بحساب القيمه الكبري مثل الكود السابق  وتخزينها في عمود "أكبر_قيمة". ثم يتكرر فوق هذا العمود ويستبدل أي قيمة أكبر من 50 بـ 50.
يمكنك اضافه هذا الكود بعد مباشره تكوين عمود 'أكبر_قيمة'

for i in range(len(df['أكبر_قيمة'])):
    if df['أكبر_قيمة'].iloc[i] > 50:
        df['أكبر_قيمة'].iloc[i] = 50

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هذا المطلوب تماما أخي

لاكن ظهرت لي مشكلة عند التنفيذ أرجو شرحها لي

  Table['2أكبر_قيمة'] = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x)
                                                                                   ^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هل يمكن التعديل للكود الثالي

Table['3أكبر_قيمة'] = Table.iloc[:, [14,15]].max(axis=1).apply(lambda x: Table.iloc[:, [15]],axis=1 if x < 50 or x > 0 else Table.iloc[:, [14]],axis=1)

حيث أريد أن أطبق شرط 

إذا كان العمود 15  القيمة به أصغر من 50 وأكبر من 0 أجعل النتيجة تأخذ قيمة العمود 14

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 1 ساعة قال Ahmed Ahmed64:

لاكن ظهرت لي مشكلة عند التنفيذ أرجو شرحها لي

  Table['2أكبر_قيمة'] = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x)
                                                                                   ^^^^^^
TypeError: '>' not supported between instances of 'NoneType' and 'int'

المشكلة هنا تحدث بسبب وجود قيم None في الأعمدة المراد مقارنتها.

عندما تحاول مقارنة None مع رقم عن طريق > فإنه لن يسمح بذلك لأن None ليست قيمة رقمية.

هناك عدة طرق لحل هذه المشكلة:

1- استبدال قيم None بقيمة أخرى مثل 0 قبل عملية المقارنة:

Table.fillna(0, inplace=True)

2- تجاهل الصفوف التي تحتوي على None:

Table = Table[Table[col1].notna() & Table[col2].notna()] 
بتاريخ منذ ساعة مضت قال Ahmed Ahmed64:

هل يمكن التعديل للكود الثالي

Table['3أكبر_قيمة'] = Table.iloc[:, [14,15]].max(axis=1).apply(lambda x: Table.iloc[:, [15]],axis=1 if x < 50 or x > 0 else Table.iloc[:, [14]],axis=1)

حيث أريد أن أطبق شرط 

إذا كان العمود 15  القيمة به أصغر من 50 وأكبر من 0 أجعل النتيجة تأخذ قيمة العمود 14

نعم يمكن تعديل الكود لتطبيق الشرط المطلوب:

# ايجاد اكبر قيمة بين العمودين 14 و 15
max_col = Table.iloc[:, [14,15]].max(axis=1) 

# تطبيق الشرط
Table['3أكبر_قيمة'] = max_col.apply(lambda x:
                                      Table.iloc[:, 14] if 0 < x < 50 else x
                                     )

نقوم  بإيجاد أكبر قيمة بين العمودين رقم 14 و 15 في DataFrame المسمى `Table`.

ثم نقوم بإضافة عمود إلى DataFrame يسمى '3أكبر_قيمة'.

ثم نطبق دالة (function) على كل قيمة في `max_col`.

الدالة هنا هي `lambda x: Table.iloc[:, 14] if 0 < x < 50 else x`.
إذا كانت القيمة `x` بين 0 و50، فإن القيمة المطلوبة تكون `Table.iloc[:, 14]` (قيمة في العمود 14).
إذا لم تكن تلبي هذا الشرط، يتم استخدام القيمة الأصلية `x`.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 4 ساعة قال Khaled Osama3:

المشكلة هنا تحدث بسبب وجود قيم None في الأعمدة المراد مقارنتها.

عندما تحاول مقارنة None مع رقم عن طريق > فإنه لن يسمح بذلك لأن None ليست قيمة رقمية.

هناك عدة طرق لحل هذه المشكلة:

1- استبدال قيم None بقيمة أخرى مثل 0 قبل عملية المقارنة:

Table.fillna(0, inplace=True)

2- تجاهل الصفوف التي تحتوي على None:

Table = Table[Table[col1].notna() & Table[col2].notna()] 

نعم يمكن تعديل الكود لتطبيق الشرط المطلوب:

# ايجاد اكبر قيمة بين العمودين 14 و 15
max_col = Table.iloc[:, [14,15]].max(axis=1) 

# تطبيق الشرط
Table['3أكبر_قيمة'] = max_col.apply(lambda x:
                                      Table.iloc[:, 14] if 0 < x < 50 else x
                                     )

نقوم  بإيجاد أكبر قيمة بين العمودين رقم 14 و 15 في DataFrame المسمى `Table`.

ثم نقوم بإضافة عمود إلى DataFrame يسمى '3أكبر_قيمة'.

ثم نطبق دالة (function) على كل قيمة في `max_col`.

الدالة هنا هي `lambda x: Table.iloc[:, 14] if 0 < x < 50 else x`.
إذا كانت القيمة `x` بين 0 و50، فإن القيمة المطلوبة تكون `Table.iloc[:, 14]` (قيمة في العمود 14).
إذا لم تكن تلبي هذا الشرط، يتم استخدام القيمة الأصلية `x`.

معذرة أخي أين الخطأ عندي في هذا الكود لو سمحت

حاولت ولاكن لم أستطع فهم الخطأ

Table['3أكبر_قيمة'] = Table.iloc[:, 15](axis=1).apply(lambda x: Table.iloc[:, 14] if 0 < x < 50 else x)

أشرح لك الفكرة التي أحاول الوصول إليها الأن بشكل مختصر

أريد أن أنظر في العمود 15 إذا كانت القيمة = 0 

ينسخ قيمة العمود 14 ويضعها في العمود الجديد

وإذا كانت القيمة أكبر من 0 وأصغر من 50 ينسخ قيمة العمود 15 وهي التي يضعها في العمود الجديد

هذا ما حولت أن أفعله

وجزاك الله خيراً أخي خالد

تم التعديل في بواسطة Ahmed Ahmed64
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ 11 ساعة قال Ahmed Ahmed64:

معذرة أخي أين الخطأ عندي في هذا الكود لو سمحت

حاولت ولاكن لم أستطع فهم الخطأ

Table['3أكبر_قيمة'] = Table.iloc[:, 15](axis=1).apply(lambda x: Table.iloc[:, 14] if 0 < x < 50 else x)

أشرح لك الفكرة التي أحاول الوصول إليها الأن بشكل مختصر

أريد أن أنظر في العمود 15 إذا كانت القيمة = 0 

ينسخ قيمة العمود 14 ويضعها في العمود الجديد

وإذا كانت القيمة أكبر من 0 وأصغر من 50 ينسخ قيمة العمود 15 وهي التي يضعها في العمود الجديد

هذا ما حولت أن أفعله

وجزاك الله خيراً أخي خالد

هناك خطأ في الكود عند استخدام apply و lambda:

- يجب استخدام apply مع دالة معرفة مسبقا وليس بصيغة lambda.

- في صيغة lambda يجب استخدام متغير واحد فقط x وليس إشارة للمصفوفة مباشرة.

الكود الصحيح:

def func(x):
   if 0 < x < 50:
      return Table.iloc[:, 14]
   else: 
      return x
   
Table['3أكبر_قيمة'] = Table.iloc[:, 15].apply(func)

أو بدون استخدام lambda/func:

Table['3أكبر_قيمة'] = Table.iloc[:, 15].apply(lambda x: Table.iloc[:, 14] if 0 < x < 50 else x)

في الكود الأصلي كان هناك خطأ في استخدام apply مع lambda وإشارة مباشرة إلى المصفوفة داخلها.

حسنا اخي هذا هو الكود بعد اضافه المطلوب


Table.fillna(0, inplace=True)

Table['3أكبر_قيمة'] = Table.apply(lambda row: row.iloc[14] if row.iloc[15] == 0 else row.iloc[15] if 0 < row.iloc[15] < 50 else None, axis=1)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

شكرا أستاذ خالد على المساعدة بارك الله فيك وجزاك الله خيراً

جمعة مباركة

أخي خالد أسف على الإطالة في الأسئلة سؤال أخر سمحت

نحن في الأمثلة السابقة نقوم بطباعة عمود جديد ويضاف إلى الجدول هكذا

Table['3أكبر_قيمة'] =

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

كيف ممكن أقوم بذلك لتحسين هذا الكود

df = pd.read_excel("aaa.xlsx",header=None)
    
    selected_column_1 = df.iloc[8::2, [0,1,2,3,4,5,6]]
    selected_column_1.reset_index(drop=True, inplace=True)
    
    selected_column_2 = df.iloc[9::2, [2,3,4,5,6]]
    selected_column_2.reset_index(drop=True, inplace=True)
    
    A = pd.DataFrame(selected_column_1)
    B = pd.DataFrame(selected_column_2)
   
    Table=pd.concat([A,B],axis=1)  
    
    repeated_values1 = []
    repeated_values2 = []
    for i in range(len(Table)):
         repeated_values1.append(df.iloc[6,3])
         repeated_values2.append(df.iloc[3,4])
    Table['الإسم'] = repeated_values1
    Table['الرقم'] = repeated_values2
    Table.fillna(0, inplace=True)
    Table['1أكبر_قيمة'] =Table.iloc[:, [5,6]].max(axis=1)
    Table['2أكبر_قيمة'] =Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x)
    Table['3أكبر_قيمة'] = Table.apply(lambda row: row.iloc[14] if row.iloc[15] == 0 else row.iloc[15] if 0 < row.iloc[15] <= 50 else None, axis=1)

في الكود السابق أريد التعديل عليه 

حيث أن العمود 

Table['1أكبر_قيمة'] =

و العمود 

Table['2أكبر_قيمة'] =

لا أريد طباعتهم وفي نفس الوقت أحتاجهم في التطبيق عليهم في الكود 

Table['3أكبر_قيمة'] = Table.apply(lambda row: row.iloc[14] if row.iloc[15] == 0 else row.iloc[15] if 0 < row.iloc[15] <= 50 else None, axis=1)

هل من طريقة لحفظهم في متغير مثلا

----------------------------------------------------------------------------------------------------------

هذه محاولة مني ولاكن يوجد العديد من الإخطاء أرجو منك أخي المراجعة والتصحيح إذ أمكن

    repeated_values1 = []
    repeated_values2 = []
    repeated_values3 = []
    repeated_values4 = []
    for i in range(len(Table)):
         repeated_values1.append(df.iloc[6,3])
         repeated_values2.append(df.iloc[3,4])
    Table['إسم المادة'] = repeated_values1
    Table['العام الدراسي'] = repeated_values2
    Table.fillna(0, inplace=True)
    repeated_values3.append(Table.iloc[:, [5,6]].max(axis=1))
    repeated_values4.append(Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x))
    Table['3أكبر_قيمة'] = Table.apply(lambda row: row.repeated_values3 if row.repeated_values4 == 0 else row.repeated_values4 if 0 < row.repeated_values4 <= 50 else None, axis=1)

 

تم التعديل في بواسطة Ahmed Ahmed64
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

جزاك الله خيرا.

طريقة حفظ الأعمدة دون طباعتها في الجدول، يمكنك حفظ قيم الأعمدة في متغيرات منفصلة بدلاً من إضافتها للجدول مباشرة.

مثال:

# حساب العمود الأول
col1_values = Table.iloc[:, [5,6]].max(axis=1) 

# حساب العمود الثاني  
col2_values = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x)

# استخدام القيم في العملية التالية
Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[i] if col2_values[i]==0 else col2_values[i] if 0 < col2_values[i] <= 50 else None, axis=1)

فهذا يحافظ على القيم دون إضافتها للجدول.

اما هذا الكود محتاج بعض التعديلات:

1. لا تضف القيم مباشرة للمتغيرات repeated، بل احفظها في متغيرات مستقلة

2. استخدم المؤشر i للوصول لقيم المتغيرات داخل الدوال

3. حساب قيم الأعمدة خارج الدوال وليس داخلها

repeated_values1 = []  
repeated_values2 = []
col1_values = []
col2_values = []

for i in range(len(Table)):
   repeated_values1.append(df.iloc[6,3]) 
   repeated_values2.append(df.iloc[3,4])
   
Table['إسم المادة'] = repeated_values1
Table['العام الدراسي'] = repeated_values2 
Table.fillna(0, inplace=True)

col1_values = Table.iloc[:, [5,6]].max(axis=1)
col2_values = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x) 

Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[i] if col2_values[i]==0 else col2_values[i] if 0 < col2_values[i] <= 50 else None, axis=1)
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 22‏/12‏/2023 at 19:10 قال Khaled Osama3:

جزاك الله خيرا.

طريقة حفظ الأعمدة دون طباعتها في الجدول، يمكنك حفظ قيم الأعمدة في متغيرات منفصلة بدلاً من إضافتها للجدول مباشرة.

مثال:

# حساب العمود الأول
col1_values = Table.iloc[:, [5,6]].max(axis=1) 

# حساب العمود الثاني  
col2_values = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x)

# استخدام القيم في العملية التالية
Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[i] if col2_values[i]==0 else col2_values[i] if 0 < col2_values[i] <= 50 else None, axis=1)

فهذا يحافظ على القيم دون إضافتها للجدول.

اما هذا الكود محتاج بعض التعديلات:

1. لا تضف القيم مباشرة للمتغيرات repeated، بل احفظها في متغيرات مستقلة

2. استخدم المؤشر i للوصول لقيم المتغيرات داخل الدوال

3. حساب قيم الأعمدة خارج الدوال وليس داخلها

repeated_values1 = []  
repeated_values2 = []
col1_values = []
col2_values = []

for i in range(len(Table)):
   repeated_values1.append(df.iloc[6,3]) 
   repeated_values2.append(df.iloc[3,4])
   
Table['إسم المادة'] = repeated_values1
Table['العام الدراسي'] = repeated_values2 
Table.fillna(0, inplace=True)

col1_values = Table.iloc[:, [5,6]].max(axis=1)
col2_values = Table.iloc[:, [10,11]].max(axis=1).apply(lambda x: 50 if x > 50 else x) 

Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[i] if col2_values[i]==0 else col2_values[i] if 0 < col2_values[i] <= 50 else None, axis=1)

السطر الأخير به مشكله

أرجو التصحيج

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0
بتاريخ On 22‏/12‏/2023 at 19:42 قال Ahmed Ahmed64:

أشكرك أخي

يبدو أن هناك مشكلة بالكود 

في الحقيقة الكود تم تنفيذه ولاكن قيم العمود الخاصة  Table['3أكبر_قيمة']

تأتي كلها بقيمة 0

من الممكن الخطأ في الكود في استخدام المتغير `i` في التعبير lambda. يمكنك تجربه تعديل جزء الكود ليبدو كما يلي:

Table['3أكبر_قيمة'] = Table.apply(lambda row: col1_values[row.name] if col2_values[row.name]==0 else col2_values[row.name] if 0 < col2_values[row.name] <= 50 else None, axis=1)

تم استبدال `i` بـ `row.name` لضمان استخدام الفهرس الصحيح للصفوف.

يرجى تجربة هذا التعديل والتحقق مما إذا كان يحل المشكلة.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...