Pandas هي مكتبة قوية في Python لتلاعب البيانات وتحليلها. غالبًا ما ستحتاج إلى تحويل البيانات المخزنة في قواميس Python إلى Pandas DataFrames لتحليل أسهل. تستعرض هذه المقالة عدة طرق لأداء هذا التحويل بكفاءة، مع التركيز على الوضوح ومعالجة هياكل القواميس المختلفة.
جدول المحتويات
- استخدام
pandas.DataFrame()
مباشرةً - استخدام
pandas.DataFrame.from_dict()
- معالجة هياكل القواميس غير المنتظمة
1. استخدام pandas.DataFrame()
مباشرةً
أبسط نهج يتضمن تمرير قاموسك مباشرةً إلى مُنشئ pandas.DataFrame()
. ومع ذلك، تعتمد النتيجة بشكل كبير على بنية قاموسك.
السيناريو الأول: قواميس ذات قيم عبارة عن قوائم/مصفوفات
هذه هي الحالة الأكثر مباشرة. يصبح كل مفتاح اسم عمود، وتشكل قائمته أو مصفوفته المقابلة بيانات العمود.
import pandas as pd
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]}
df = pd.DataFrame(data)
print(df)
الخرج:
col1 col2 col3
0 1 4 7
1 2 5 8
2 3 6 9
السيناريو الثاني: قواميس قواميس أو قوائم قواميس
بالنسبة للقواميس المتداخلة أو قوائم القواميس، يتغير السلوك. يفسر Pandas البنية بشكل مختلف، وغالبًا ما ينتج النتيجة المرجوة إذا كانت القواميس الداخلية متسقة.
data = [{'col1': 1, 'col2': 4, 'col3': 7}, {'col1': 2, 'col2': 5, 'col3': 8}, {'col1': 3, 'col2': 6, 'col3': 9}]
df = pd.DataFrame(data)
print(df)
ينتج هذا نفس الإخراج مثل السيناريو الأول. ومع ذلك، يمكن أن تسبب عدم الاتساقات (المفاتيح المفقودة) مشاكل. تأكد من وجود بنية بيانات متسقة للحصول على نتائج موثوقة.
2. استخدام pandas.DataFrame.from_dict()
توفر طريقة from_dict()
المزيد من التحكم من خلال معلمة orient
، والتي تحدد كيفية تفسير القاموس:
'columns'
: مشابه للسيناريو الأول أعلاه.'index'
: تصبح المفاتيح الفهرس، وتشكل القيم عمودًا واحدًا.'rows'
: يمثل كل قاموس في قائمة صفًا.
data = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9]}
df = pd.DataFrame.from_dict(data, orient='columns')
print(df)
data2 = {'col1': 10, 'col2': 20, 'col3': 30}
df2 = pd.DataFrame.from_dict(data2, orient='index', columns=['Value'])
print(df2)
data3 = [{'col1': 1, 'col2': 4, 'col3': 7}, {'col1': 2, 'col2': 5, 'col3': 8}, {'col1': 3, 'col2': 6, 'col3': 9}]
df3 = pd.DataFrame.from_dict(data3, orient='rows')
print(df3)
3. معالجة هياكل القواميس غير المنتظمة
بالنسبة للقواميس ذات المفاتيح أو القيم غير المتسقة، فإن المعالجة المسبقة أمر بالغ الأهمية. ضع في اعتبارك استخدام تقنيات مثل:
- ملء القيم المفقودة: استخدم
fillna()
لاستبدال القيم المفقودة بقيمة افتراضية (مثل 0 أو NaN). - تنظيف البيانات: توحيد أنواع البيانات ومعالجة عدم الاتساقات قبل التحويل.
- تحويل البيانات: إعادة هيكلة قاموسك إلى تنسيق أكثر انتظامًا مناسب لإنشاء DataFrame.
من خلال مراعاة بنية قاموسك بعناية واستخدام طريقة Pandas المناسبة، يمكنك إنشاء DataFrames موثوقة وفعالة للتحليل.