Ahmed Ahmed64 نشر 17 يناير أرسل تقرير نشر 17 يناير السلام عليكم يوجد لدي DataFrame بها مجموعة من الأعمدة أحتاج أن أجمع قيم أحد الأعمدة وتقسيمها على مجموعة عمود أخر أيضا بعد جمعه 1 اقتباس
0 Chihab Hedidi نشر 17 يناير أرسل تقرير نشر 17 يناير يمكنك ذلك باستخدام مكتبة pandas في Python لتنفيذ هذه العملية، سأكتب لك كود كمثال لتفهم أكثر: import pandas as pd # قم بتعريف DataFrame الخاص بك data = {'Column1': [1, 2, 3, 4], 'Column2': [5, 6, 7, 8], 'Column3': [9, 10, 11, 12]} df = pd.DataFrame(data) إذا أردت جمع قيم Column1 وتقسيمها على قيم Column2، يمكنك استخدام الكود التالي: # جمع قيم Column1 sum_column1 = df['Column1'].sum() # جمع قيم Column2 sum_column2 = df['Column2'].sum() # تقسيم النتيجة result = sum_column1 / sum_column2 print(result) هذا سيعطيك النتيجة المطلوبة. يمكنك تعديل الأعمدة والبيانات وفقا لاحتياجات DataFrame الخاص بك. اقتباس
0 Ahmed Ahmed64 نشر 17 يناير الكاتب أرسل تقرير نشر 17 يناير بتاريخ 7 دقائق مضت قال Chihab Hedidi: يمكنك ذلك باستخدام مكتبة pandas في Python لتنفيذ هذه العملية، سأكتب لك كود كمثال لتفهم أكثر: import pandas as pd # قم بتعريف DataFrame الخاص بك data = {'Column1': [1, 2, 3, 4], 'Column2': [5, 6, 7, 8], 'Column3': [9, 10, 11, 12]} df = pd.DataFrame(data) إذا أردت جمع قيم Column1 وتقسيمها على قيم Column2، يمكنك استخدام الكود التالي: # جمع قيم Column1 sum_column1 = df['Column1'].sum() # جمع قيم Column2 sum_column2 = df['Column2'].sum() # تقسيم النتيجة result = sum_column1 / sum_column2 print(result) هذا سيعطيك النتيجة المطلوبة. يمكنك تعديل الأعمدة والبيانات وفقا لاحتياجات DataFrame الخاص بك. أحسنت أخي هذا ما فعلته بالضبط ولاكن يظهر هذا الخطأ TypeError: unsupported operand type(s) for +: 'float' and 'str' علما أن البيانات كلها أرقام بهذا العمود اقتباس
0 Chihab Hedidi نشر 17 يناير أرسل تقرير نشر 17 يناير بتاريخ 5 دقائق مضت قال Ahmed Ahmed64: أحسنت أخي هذا ما فعلته بالضبط ولاكن يظهر هذا الخطأ TypeError: unsupported operand type(s) for +: 'float' and 'str' علما أن البيانات كلها أرقام بهذا العمود تأكد من أن العمود لا يحتوي على أي كلمات، اذا تستطيع أرفق الكود مع الملف لأطلع عليه أكثر. 1 اقتباس
0 Ahmed Ahmed64 نشر 17 يناير الكاتب أرسل تقرير نشر 17 يناير بتاريخ 3 دقائق مضت قال Chihab Hedidi: تأكد من أن العمود لا يحتوي على أي كلمات، اذا تستطيع أرفق الكود مع الملف لأطلع عليه أكثر. names2 =melted_df[['رقم القيد', 'رمز المقرر' , 'الفصل الدراسي' , 'الاعمال' , 'النهائي' , 'المجموعة' ]] names2['وحدة دراسية']=melted_df['المادة'].map(self.Subjects_SH).fillna('Other') names2['cc']=names2['النهائي'] * names2['وحدة دراسية'] df3 = pd.DataFrame(names2) Total = df3['cc'].sum() print(Total) 1 اقتباس
0 Chihab Hedidi نشر 17 يناير أرسل تقرير نشر 17 يناير بالنسبة للخطأ الذي قد واجهته، يفضل دائما التحقق من أن أنواع البيانات في الأعمدة تسمح بالعمليات الحسابية، يمكنك استخدام dtype للتحقق من أن الأعمدة التي تشارك في العمليات الحسابية لديها نفس الأنواع. # التحقق من أنواع الأعمدة print(df3.dtypes) # تحويل الأعمدة إلى أنواع البيانات المناسبة إذا كانت لا تزال هناك مشكلة df3['النهائي'] = pd.to_numeric(df3['النهائي'], errors='coerce') df3['وحدة دراسية'] = pd.to_numeric(df3['وحدة دراسية'], errors='coerce') # القيام بالعمليات الحسابية بعد التأكد من صحة أنواع البيانات df3['cc'] = df3['النهائي'] * df3['وحدة دراسية'] # حساب المجموع الإجمالي Total = df3['cc'].sum() # طباعة النتيجة print(Total) 1 اقتباس
0 Ahmed Ahmed64 نشر 17 يناير الكاتب أرسل تقرير نشر 17 يناير أشكرك أخي على التوضيح فعلا الأن تم تطبيق البرنامج ولاكن المشكلة في عملية الجمع تظهر خاطئة كما أن هناك هذه الأسطر لم أفهمها See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy names2['وحدة دراسية'] = pd.to_numeric(names2['وحدة دراسية'], errors='coerce') 4115460.0 بتاريخ 18 دقائق مضت قال Ahmed Ahmed64: أشكرك أخي على التوضيح فعلا الأن تم تطبيق البرنامج ولاكن المشكلة في عملية الجمع تظهر خاطئة كما أن هناك هذه الأسطر لم أفهمها See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy names2['وحدة دراسية'] = pd.to_numeric(names2['وحدة دراسية'], errors='coerce') 4115460.0 قمت بتحويل إلى DataFrame وقد عالجة المشكلة الأخيرة وهذه مخرجات لاكن نتيجة الجمع لها خطأ 4115460.0 رقم القيد object رمز المقرر object الفصل الدراسي object الاعمال int64 النهائي float64 المجموعة int64 وحدة دراسية int64 cc float64 dtype: object 1 اقتباس
0 Chihab Hedidi نشر 17 يناير أرسل تقرير نشر 17 يناير تظهر الرسالة "See the caveats in the documentation" عندما تقوم بتعديل قيم في DataFrame بطريقة يمكن أن تؤثر على النسخة الأصلية، يعني هذا أن هناك احتمالا لحدوث تأثير جانبي على البيانات الأصلية. قد ظهرت هذه الرسالة إذا كانت هناك قيم غير صحيحة في العمود 'وحدة دراسية' وتم تحويلها إلى NaN، لذا تأكد أن كل سطر في العمود يحتوي على قيم و تكون عبارة عن أرقام. اقتباس
0 Ahmed Ahmed64 نشر 18 يناير الكاتب أرسل تقرير نشر 18 يناير بتاريخ 14 دقائق مضت قال Chihab Hedidi: تظهر الرسالة "See the caveats in the documentation" عندما تقوم بتعديل قيم في DataFrame بطريقة يمكن أن تؤثر على النسخة الأصلية، يعني هذا أن هناك احتمالا لحدوث تأثير جانبي على البيانات الأصلية. قد ظهرت هذه الرسالة إذا كانت هناك قيم غير صحيحة في العمود 'وحدة دراسية' وتم تحويلها إلى NaN، لذا تأكد أن كل سطر في العمود يحتوي على قيم و تكون عبارة عن أرقام. تم التأكيد وقد اختفت هذه الرسالة المشكلة الأن أن الجمع غير صحيح 1 اقتباس
0 Chihab Hedidi نشر 18 يناير أرسل تقرير نشر 18 يناير بتاريخ 3 دقائق مضت قال Ahmed Ahmed64: تم التأكيد وقد اختفت هذه الرسالة المشكلة الأن أن الجمع غير صحيح من فضلك ارفق ملف الاكسل الذي تعمل عليه حتى يمكنني فهم المشكل بشكل أفضل. 1 اقتباس
0 Ahmed Ahmed64 نشر 18 يناير الكاتب أرسل تقرير نشر 18 يناير بتاريخ 14 ساعة قال Chihab Hedidi: من فضلك ارفق ملف الاكسل الذي تعمل عليه حتى يمكنني فهم المشكل بشكل أفضل. أشكرك أخي لقد فهمت الخطأ الخطأ في DataFrame 1 اقتباس
السؤال
Ahmed Ahmed64
السلام عليكم
يوجد لدي DataFrame بها مجموعة من الأعمدة
أحتاج أن أجمع قيم أحد الأعمدة وتقسيمها على مجموعة عمود أخر أيضا بعد جمعه
10 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.