تُعدّ جداول بيانات Pandas (Pandas DataFrames) حجر الزاوية في معالجة البيانات في بايثون. غالبًا ما ستحتاج إلى تعديل خلايا فردية داخل جدول البيانات الخاص بك. تستعرض هذه المقالة ثلاث طرق فعّالة لتحقيق ذلك باستخدام مؤشر جدول البيانات.
جدول المحتويات
تعيين قيم الخلايا باستخدام .at
يوفر مُؤشّر .at
طريقة فعّالة للغاية للوصول إلى خلية واحدة وتعديلها في جدول بيانات باستخدام تسميات الصفّ والعمود. تجعله سرعته مثاليًا لعمليات التعيين ذات القيمة المفردة.
import pandas as pd
# جدول بيانات نموذجي
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])
# تعيين قيمة الخلية في الصف 'B' والعمود 'col1' إلى 10
df.at['B', 'col1'] = 10
print(df)
سيكون المخرَج:
col1 col2
A 1 4
B 10 5
C 3 6
تمّ تحسين .at
من حيث السرعة والبساطة عند التعامل مع خلايا مفردة. ومع ذلك، فإن محاولة تعيين قيم متعددة ستؤدي إلى خطأ TypeError
.
تعيين قيم الخلايا باستخدام .loc
يوفر مُؤشّر .loc
مرونة أكبر. يسمح بالفهرسة القائمة على التسميات للصفوف والأعمدة ويمكنه معالجة تعيينات القيم المفردة أو المصفوفات لخلايا متعددة في وقت واحد.
import pandas as pd
# جدول بيانات نموذجي
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6]}
df = pd.DataFrame(data, index=['A', 'B', 'C'])
# تعيين قيمة الخلية في الصف 'A' والعمود 'col2' إلى 100
df.loc['A', 'col2'] = 100
print(df)
# تعيين قيم متعددة
df.loc[['A', 'B'], 'col1'] = [5, 15] #يُعيّن 5 إلى A و 15 إلى B
print(df)
سيكون المخرَج الأول:
col1 col2
A 1 100
B 2 5
C 3 6
ثم:
col1 col2
A 5 100
B 15 5
C 3 6
.loc
هي الطريقة الأكثر تنوعًا، وهي مناسبة لكل من تحديثات الخلايا المفردة والسيناريوهات الأكثر تعقيدًا التي تتضمن صفوفًا وأعمدة متعددة. على الرغم من تنوعها، إلا أن .at
أسرع عمومًا في حالة التغييرات في الخلايا المفردة.
طريقة .set_value()
المُهملة
طريقة .set_value()
مُهملة في إصدارات Pandas الأحدث. بينما قد لا تزال تعمل في الإصدارات القديمة، يُنصح بشدة باستخدام .at
أو .loc
لتحقيق توافق أفضل وأداء أفضل. تجنب استخدام .set_value()
في التعليمات البرمجية الجديدة.
باختصار، توفر كل من .at
و .loc
طرقًا فعّالة لتعديل الخلايا الفردية في جدول بيانات Pandas. يُفضّل استخدام .at
لسرعتها وبساطتها مع القيم المفردة، و .loc
لمرونتها عند العمل مع خلايا متعددة أو تعديلات أكثر تعقيدًا.