Pandas مكتبة قوية في بايثون لمعالجة البيانات وتحليلها. وتتضمن المهام الشائعة اختيار أعمدة محددة من DataFrame. تستعرض هذه المقالة طرقًا فعالة وواضحة لاختيار أعمدة متعددة، مع تسليط الضوء على أفضل الممارسات.
جدول المحتويات:
- استخدام بناء جملة Getitem
- استخدام
iloc()
- استخدام
loc()
- الفهرسة البولينية لاختيار الأعمدة
- اعتبارات الأداء
- الخلاصة
- الأسئلة الشائعة
استخدام بناء جملة Getitem
أبسط نهج يستخدم بناء جملة getitem ([]
). قم بتوفير قائمة بأسماء الأعمدة لاختيار تلك الأعمدة.
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12]}
df = pd.DataFrame(data)
# اختيار 'col1', 'col3', و 'col4'
selected_columns = ['col1', 'col3', 'col4']
selected_df = df[selected_columns]
print(selected_df)
هذا مختصر وقابل للقراءة، لكن تأكد من وجود جميع الأعمدة المدرجة في DataFrame؛ وإلا، سيحدث خطأ KeyError
.
استخدام iloc()
يستخدم iloc()
الفهرسة القائمة على الأعداد الصحيحة. اختر الأعمدة عن طريق توفير قائمة بمواقعها الصحيحة (مع مراعاة أن بايثون تستخدم الفهرسة القائمة على الصفر).
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12]}
df = pd.DataFrame(data)
# اختيار الأعمدة في المؤشرات 0، 2، و 3
selected_df = df.iloc[:, [0, 2, 3]] # : يختار جميع الصفوف، [0, 2, 3] يختار الأعمدة 0، 2، و 3
print(selected_df)
الرمز :
يختار جميع الصفوف. iloc()
مفيد عندما تكون أسماء الأعمدة غير معروفة، ولكن المؤشرات متاحة.
استخدام loc()
يستخدم loc()
العلامات (أسماء الأعمدة). على الرغم من تشابهه مع getitem للأعمدة المتعددة، إلا أن loc
يوفر مرونة أكبر لاختيارات الصفوف والأعمدة مجتمعة.
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12]}
df = pd.DataFrame(data)
# اختيار 'col1', 'col3', و 'col4'
selected_df = df.loc[:, ['col1', 'col3', 'col4']] # : يختار جميع الصفوف، ['col1', 'col3', 'col4'] يختار الأعمدة المحددة
print(selected_df)
يُشير loc
بشكل صريح إلى الاختيار القائم على العلامات، وهو مفيد عند دمجه مع اختيار الصفوف باستخدام العلامات أو الفهرسة البولينية.
الفهرسة البولينية لاختيار الأعمدة
للسيناريوهات الأكثر تعقيدًا، تسمح الفهرسة البولينية مع loc
باختيار الأعمدة بناءً على الشروط المطبقة على أسمائها.
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9], 'col4': [10, 11, 12], 'other_col': [13,14,15]}
df = pd.DataFrame(data)
# اختيار الأعمدة التي تبدأ بـ 'col'
selected_df = df.loc[:, [col.startswith('col') for col in df.columns]]
print(selected_df)
اعتبارات الأداء
بشكل عام، getitem هو الأسرع، يليها loc
، ثم iloc
. ومع ذلك، فإن الاختلافات تكون عادةً ضئيلة ما لم تكن تتعامل مع DataFrames ضخمة. أعط الأولوية للقراءة والصيانة على مكاسب الأداء الطفيفة.
الخلاصة
اختيار أعمدة متعددة أمر أساسي في Pandas. Getitem هو الأبسط لأسماء الأعمدة المعروفة. iloc()
مناسب للفهرسة القائمة على الأعداد الصحيحة، بينما loc()
يوفر المرونة وهو مفضل للاختيار القائم على العلامات. تعتمد أفضل طريقة على احتياجاتك المحددة وهيكل بياناتك.
الأسئلة الشائعة
- س: ماذا يحدث إذا اخترت عمودًا غير موجود؟
ج: Getitem وloc
يثيران خطأKeyError
.iloc
يثير خطأIndexError
إذا كان المؤشر خارج الحدود. - س: هل يمكنني اختيار الأعمدة بناءً على شرط؟
ج: نعم، استخدم الفهرسة البولينية معloc
(كما هو موضح أعلاه).