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

السؤال

نشر (معدل)

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

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

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

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

الأن أحاول تصميم 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]

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...