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

تعديل للكود pd.DataFrame

Ahmed Ahmed64

السؤال

السلام عليكم ورحمة الله وبركاته

جمعة طيبه

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

import pandas as pd
df = pd.read_excel("2018.xlsx",header=None)
data  = { 'رقم القيد': df.iloc[3::, 5], 'عربي': df.iloc[3::, 9], 'إنجليزي': df.iloc[3::, 10], 'تاريخ': df.iloc[3::, 11] }
df1 = pd.DataFrame(data)
melted_df = pd.melt(df1, id_vars=['رقم القيد'], var_name='المادة', value_name='الدرجة')
melted_df = melted_df.sort_values(by=['المادة'])
melted_df.to_excel("002.xlsx")

الفكرة التي حاولت تطبيقها 

أريد أن أجعل عمود جديد به رمز المادة فالنتيجة عند تطبيق الكود السابق بهذا الشكل

image.png.d5e286a8734f4705b0ea0eb5c099899b.png

كيف نظيف رمز المادة بحيث تأخذ كل مادة رمزها

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

Recommended Posts

  • 0

وعليكم السلام ورحمة الله وبركاته،

يبدو أن المطلوب إضافة عمود يحتوي على A إذا كانت المادة عربي، ويحتوي على E إذا كانت إنجلزي وهكذا،

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

melted_df['رمز المادة'] = melted_df['المادة'].str.replace('عربي', 'A').replace('إنجليزي', 'E').replace('تاريخ', 'H')

يضاف قبل السطر الأخير

ومعناه إنشاء عمود رابع يسمى "رمز المادة"، وتكون قيمته تعتمد على قيمة العمود "المادة" بحيث يعطي لكل مادة رمزًا لها.

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

أرجو التجربة.

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...