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

تصميم DataFrame من جدول Excel جاهز

Ahmed Ahmed64

السؤال

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

جمعة طيبة للجميع

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

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

الأن أحاول تصميم DataFrame من جدول Excel

في البداية لكي تكون الصورة واضحة لكم 

الجدول يتكون من مجموعة كبيرة من الأعمدة ليس لها عنوان .... لنفترض أن الصف الأول حتى الصف الثالث لا يحتوي أي بيانات ،،، أود أن أقوم بإنشاءDataFrame

في البداية قمت بي بقراءة الملف هكذا

df = pd.read_excel("ABC.xlsx")

مثلا أود أن أقرأ العمود 3 قمت بذلك 

df.iloc[3::, 2]

أود أيضا أن أقرأ العمود 4 قمت بذلك 

df.iloc[3::, 3]

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

DATA = {'الأول':df.iloc[3::, 2],'الثاني':df.iloc[3::, 3]}
df1 = pd.DataFrame(DATA)

هل الكود هكذا به مشكلة إن كان كتابة الكود غير سليم فأرجو شرح كيف أقوم بهذا

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

Recommended Posts

  • 0

الكود الذي كتبته لإنشاء DataFrame يبدو صحيحا بشكل عام، ولكن إليك طريقة أفضل لتحديد الأعمدة وإعطائها أسماء:

# اختيار الأعمدة المحددة من DataFrame الأصلي
selected_columns = df.iloc[3:, 2:4]

# تحديد أسماء الأعمدة
column_names = ['الأول', 'الثاني']

# إنشاء DataFrame
df1 = pd.DataFrame(selected_columns.values, columns=column_names)

بهذه الطريقة، سيتم تحديد الأعمدة 2 و 3 من DataFrame الأصلي (iloc[3:, 2:4]) وتخزينها في المتحول selected_columns. ثم تحديد أسماء الأعمدة وأخيرًا إنشاء DataFrame جديد باستخدام هذه الأعمدة وأسمائها.

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

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

الكود الذي كتبته لإنشاء DataFrame يبدو صحيحا بشكل عام، ولكن إليك طريقة أفضل لتحديد الأعمدة وإعطائها أسماء:

# اختيار الأعمدة المحددة من DataFrame الأصلي
selected_columns = df.iloc[3:, 2:4]

# تحديد أسماء الأعمدة
column_names = ['الأول', 'الثاني']

# إنشاء DataFrame
df1 = pd.DataFrame(selected_columns.values, columns=column_names)

بهذه الطريقة، سيتم تحديد الأعمدة 2 و 3 من DataFrame الأصلي (iloc[3:, 2:4]) وتخزينها في المتحول selected_columns. ثم تحديد أسماء الأعمدة وأخيرًا إنشاء DataFrame جديد باستخدام هذه الأعمدة وأسمائها.

df.iloc[3:, 2:4]

أخي هل لك أن توضح لي أكثر 

لقد ذكرت العمود 2 و العمود الثالث

إذا كيف تم الكتابه هكذا

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

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

df.iloc[3:, 2:4]

أخي هل لك أن توضح لي أكثر 

لقد ذكرت العمود 2 و العمود الثالث

إذا كيف تم الكتابه هكذا

 الجزء df.iloc[3:, 2:4] يستخدم لتحديد جزء معين من DataFrame باستخدام تقديم الصفوف والأعمدة المحددة. فـ:

  • 3:: يعني ابتداءً من الصف رقم 3 وحتى نهاية الصفوف. هذا يتجاوز الصفوف الثلاثة الأولى (التي قد تحتوي على عناوين الأعمدة أو معلومات غير ضرورية).
  • 2:4: يعني ابتداءً من العمود رقم 2 وحتى العمود رقم 3.

وهكذا يتم اختيار العمودين الثاني والثالث مع تجاوز أول ثلاث صفوف في كل منها.

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

  • 0
بتاريخ 7 دقائق مضت قال Adnane Kadri:

 الجزء df.iloc[3:, 2:4] يستخدم لتحديد جزء معين من DataFrame باستخدام تقديم الصفوف والأعمدة المحددة. فـ:

  • 3:: يعني ابتداءً من الصف رقم 3 وحتى نهاية الصفوف. هذا يتجاوز الصفوف الثلاثة الأولى (التي قد تحتوي على عناوين الأعمدة أو معلومات غير ضرورية).
  • 2:4: يعني ابتداءً من العمود رقم 2 وحتى العمود رقم 3.

وهكذا يتم اختيار العمودين الثاني والثالث.

لنفترض أني لا أريد عمود معين فهذا لا ينجح    (  2:4: يعني ابتداءً من العمود رقم 2 وحتى العمود رقم 3. )

أحيانا قد أحتاج عمود 2 و 3 وأتجاهل 4 وأحتاج العمود 5  فكيف أقوم بذلك

كما أن لدي استفسار أخر هل العد يبدأ من 0 أو 1 بالنسبه للأعمدة والصفوف

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

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

لنفترض أني لا أريد عمود معين فهذا لا ينجح    (  2:4: يعني ابتداءً من العمود رقم 2 وحتى العمود رقم 3. )

أحيانا قد أحتاج عمود 2 و 3 وأتجاهل 4 وأحتاج العمود 5  فكيف أقوم بذلك

يمكنك استخدام قوس مربعي فارغ لتحديد الصفوف الكل (:) واختيار الأعمدة المطلوبة. على سبيل المثال، إذا كنت تريد اختيار العمودين 2 و 3 وتجاهل العمود 4 وتحتاج العمود 5، يمكنك القيام بذلك كما يلي:

selected_columns = df.iloc[3:, [2, 3, 5]]

سيشتمل هذا على الصفوف من الصف 3 وما بعدها، والأعمدة 2 و 3 و 5.

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

  • 0
بتاريخ 8 دقائق مضت قال Adnane Kadri:

يمكنك استخدام قوس مربعي فارغ لتحديد الصفوف الكل (:) واختيار الأعمدة المطلوبة. على سبيل المثال، إذا كنت تريد اختيار العمودين 2 و 3 وتجاهل العمود 4 وتحتاج العمود 5، يمكنك القيام بذلك كما يلي:

selected_columns = df.iloc[3:, [2, 3, 5]]

سيشتمل هذا على الصفوف من الصف 3 وما بعدها، والأعمدة 2 و 3 و 5.

كما أن لدي استفسار أخر وأسف على الإطالة أخي

هل العد يبدأ من 0 أو 1 بالنسبة للأعمدة والصفوف

 

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

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

كما أن لدي استفسار أخر هل العد يبدأ من 0 أو 1 بالنسبه للأعمدة والصفوف

 العد يبدأ من الصفر لكل من الصفوف والأعمدة. لذا، الصف الأول يمثله الرقم 0، والعمود الأول يمثله الرقم 0 وهكذا ..

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

  • 0
بتاريخ 15 دقائق مضت قال Adnane Kadri:

 العد يبدأ من الصفر لكل من الصفوف والأعمدة. لذا، الصف الأول يمثله الرقم 0، والعمود الأول يمثله الرقم 0 وهكذا ..

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

أرجو التعديل هنا على هذا الكود لكي أفهم التعديل أين يتم

selected_columns = df.iloc[3:, [2, 3, 5]]

أسف على الإطالة معك في الحقيقة لقد أوضحت لي الكثير 

 

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

  • 0

وماذا عن القيم الفارغة؟

لأنك ستحصل على عدد غير متساوٍ من الصفوف؟ هل تقصد أن الصفوف التي لا يقرأها يجعلها فارغة؟

إذا كان كذلك، يمكنك تنفيذه عن طريق:

قراءة كل الملف، ثم تحديد الصفوف المراد إخفاؤها وجعلها فارغة


df.iloc[1::2, :] = np.nan

 

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

  • 0
بتاريخ 1 دقيقة مضت قال El Sayed El Tohamy:

وماذا عن القيم الفارغة؟

لأنك ستحصل على عدد غير متساوٍ من الصفوف؟ هل تقصد أن الصفوف التي لا يقرأها يجعلها فارغة؟

إذا كان كذلك، يمكنك تنفيذه عن طريق:

قراءة كل الملف، ثم تحديد الصفوف المراد إخفاؤها وجعلها فارغة


df.iloc[1::2, :] = np.nan

 

عفواً لم يكن هكذا السؤال 

أقصد أن يقفز سطر 

كا التالي     df.iloc[3::2, [2,3,5,]]

هنا  القفز لجميع الأعمدة ولاكن أحتاج أن يكون القفز داخل أحد الأعمدة فقط 

كيف أقوم التعديل إذا على هذا الكود

selected_columns = df.iloc[3:, [2, 3, 5]]

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

  • 0

إذن ستكون هناك قيم فارغة في العمود الذي نقفر فيه،

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

أعط مثالًا حتى تكون الصورة واضحة.

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

  • 0
بتاريخ 54 دقائق مضت قال El Sayed El Tohamy:

إذن ستكون هناك قيم فارغة في العمود الذي نقفر فيه،

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

أعط مثالًا حتى تكون الصورة واضحة.

كيف أقوم إجراء عملية على عمودين باستدعاء رقم العمود وليس اسم العمود

هل هذا الكود صحيح هكذا

Table1['المجموع الكلي'] = Table1[1] + Table1[2]

 

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

  • 0
بتاريخ 40 دقائق مضت قال Ahmed Ahmed64:
Table1['المجموع الكلي'] = Table1[1] + Table1[2]

نعم الشيفرة صحيحة، المفترض تعمل بشكل صحيح، هذا بفرض أن Table1عبارة عن DataFrame

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

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...