تُعدّ جداول بيانات Pandas (Pandas DataFrames) أساسيةً في معالجة البيانات في بايثون. إنّ إضافة أعمدة جديدة مهمّة شائعة، ويُقدّم Pandas عدّة طرق فعّالة لتحقيق ذلك. يستعرض هذا المقال أربع طرق رئيسية، مُسلّطاً الضوء على نقاط قوّتها وضعفها لمساعدتك في اختيار النهج الأنسب لحالتك.
محتويات الجدول
طريقة مُشغّل الأقواس المُربعة []: الطريقة السريعة والسهلة
هذه هي أبسط طريقة، وهي مثالية لإضافة أعمدة بناءً على بيانات موجودة أو حسابات بسيطة. تقوم بتعيين القيم مباشرةً إلى عمود جديد باستخدام الأقواس المُربعة.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df['City'] = ['New York', 'London', 'Paris']
print(df)
القيود: لا تستطيع هذه الطريقة الإدراج في موضع مُحدّد، وتتطلّب أن تتطابق بيانات العمود الجديد مع طول جدول البيانات.
طريقة df.insert()
: تحديد موضع العمود بدقة
توفر df.insert()
تحكّماً أكبر، مما يسمح لك بتحديد مُؤشّر العمود (الموضع). تستقبل ثلاث حجج: الموضع، واسم العمود، والبيانات.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.insert(1, 'City', ['New York', 'London', 'Paris'])
print(df)
الأفضل لـ: الحالات التي يكون فيها ترتيب العمود بالغ الأهمية.
طريقة df.assign()
: إضافة أعمدة مُتعددة بكفاءة
تُعدّ df.assign()
مفيدة بشكل خاص لإضافة أعمدة مُتعددة في آن واحد أو إنشاء أعمدة جديدة بناءً على الحسابات. ومن المهم أن تلاحظ أنها تُعيد جدول بيانات *جديد*، تاركةً الأصلي دون تغيير.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df = df.assign(City=['New York', 'London', 'Paris'], Age_Squared=df['Age']**2)
print(df)
الأفضل لـ: إضافة أعمدة مُتعددة وأعمدة مُحسوبة؛ إنّ عدم قابليتها للتغيير تمنع فقدان البيانات العرضي.
طريقة df.loc()
: إنشاء عمود شرطي
توفر df.loc()
أقصى قدر من المرونة، مما يسمح بإنشاء عمود شرطي بناءً على تحديد الصفوف والفهرسة المنطقية.
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 28]}
df = pd.DataFrame(data)
df.loc[df['Age'] < 30, 'Age_Group'] = 'Young'
df.loc[df['Age'] >= 30, 'Age_Group'] = 'Older'
print(df)
الأفضل لـ: إضافة أعمدة بناءً على شروط مُعقّدة؛ تتطلب إلماماً بالفهرسة المنطقية.
الخلاصة: تعتمد الطريقة الأمثل على احتياجاتك المُحددة. يُعدّ مُشغّل [] سريعاً للإضافات البسيطة، وdf.insert()
يتحكّم في موضع العمود، وdf.assign()
يُعالِج الأعمدة المُتعددة أو المُحسوبة بكفاءة، وdf.loc()
يُمكّن من إنشاء عمود شرطي. اختر الطريقة التي تُوازن بشكل أفضل بين القابلية للقراءة والوظائف لمهمتك.