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

السؤال

Recommended Posts

  • 0
نشر

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

import pandas as pd

data = {'الاسم': ['أحمد', 'سارة', 'علي', 'فاطمة'],
        'العمر': [22, 25, 21, 28],
        'المدينة': ['الرياض', 'جدة', 'الدمام', 'مكة']}

df = pd.DataFrame(data, index=['طالب1', 'طالب2', 'طالب3', 'طالب4'])

نستخدم loc حسب اسم الفهرس

print(df.loc['طالب2'])

بينما 

نستخدم iloc حسب الفهرس

print(df.iloc[1]) # الصف الثاني (الفهرس رقم 1)

كما أنه باستخدام iloc لا يشمل النهاية

print(df.iloc[0:3])

أي النتيجة ستعرض بيانات الطلاب من الفهرس 0 إلى ما قبل الفهرس 3 (أي الفهارس 0, 1, 2)، وبالتالي لن يتم عرض بيانات "طالب4" على عكس loc

  • 0
نشر

loc للاختيار بناءًا على الـ Labels  أي أسماء الصفوف وأسماء الأعمدة للوصول إلى البيانات، وتتعامل مع أسماء الفهرس وأسماء الأعمدة، وعند استخدام التقطيع مثلاً df.loc[['A', 'B']] تكون النتيجة شاملة لنقطة النهاية.

بينما iloc للاختيار بناءًا على الموقع الرقمي أو الفهرس، أي لمواقع الصفوف والأعمدة بغض النظر عن أسمائها وتبدأ من 0، تمامًا مثل التعامل مع القوائم في بايثون.

وعند استخدام التقطيع  تكون النتيجة غير شاملة لنقطة النهاية، كما في بايثون.

بالتالي استخدم loc في حال لديك فهرس ذو معنى كتواريخ، أو أسماء، أو رموز تعريفية، وذلك سيجنبك الخطأ لو تغير ترتيب البيانات.

واستخدم iloc للوصول إلى البيانات بناءًا على موقعها الرقمي بغض النظر عن أسماء الفهرس، أو عندما يكون الفهرس هو الفهرس الرقمي الافتراضي 0, 1, 2, وهكذا، وبالطبع الأمر مفيد جدً في الـ loops أو عند إجراء عمليات حسابية على مواقع محددة.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...