تعد إعادة تشكيل البيانات الجدولية مهمة أساسية في تحليل البيانات. التمحور، وهو أسلوب لنقل الصفوف والأعمدة في إطار البيانات، غالبًا ما يكون مفيدًا لإنشاء جداول محورية واستكشاف البيانات من وجهات نظر مختلفة. دعونا نستكشف كيفية تنفيذ هذه العملية في Pandas، وهي مكتبة قوية لمعالجة البيانات.
لتحريك إطار بيانات، استخدم بشكل أساسي الطريقة .pivot. تأخذ هذه الطريقة عدة وسيطات:
على سبيل المثال، ضع في اعتبارك إطار البيانات التالي:
Indicator Country Year Value 1 Angola 2005 6 2 Angola 2005 13 3 Angola 2005 10 4 Angola 2005 11 5 Angola 2005 5 1 Angola 2006 3 2 Angola 2006 2 3 Angola 2006 7 4 Angola 2006 3 5 Angola 2006 6
لتحريك إطار البيانات هذا بحيث تصبح القيم الموجودة في عمود المؤشر هي الأعمدة الجديدة، استخدم الكود التالي:
out = df.pivot(index=['Country', 'Year'], columns='Indicator', values='Value') print(out)
ستنتج هذه العملية إطار البيانات المحوري التالي:
Indicator 1 2 3 4 5 Country Year Angola 2005 6 13 10 11 5 2006 3 2 7 3 6
لتحويل إطار البيانات المحوري مرة أخرى إلى جدول مسطح، استخدم .rename_axis لإزالة محور المؤشر و .reset_index لتحويل البلد والسنة إلى أعمدة عادية.
print(out.rename_axis(columns=None).reset_index())
سيؤدي هذا إلى بنية إطار البيانات الأصلية:
Country Year 1 2 3 4 5 0 Angola 2005 6 13 10 11 5 1 Angola 2006 3 2 7 3 6
إذا كانت بياناتك تحتوي على مجموعات مكررة من التصنيفات (على سبيل المثال، البلد، السنة، المؤشر)، فاستخدم .pivot_table. تأخذ هذه الطريقة المتوسط بشكل افتراضي.
out = df.pivot_table( index=['Country', 'Year'], columns='Indicator', values='Value') print(out.rename_axis(columns=None).reset_index())
سيؤدي ذلك إلى إخراج إطار بيانات محوري مشابه، ولكن مع قيم متوسطة للمجموعات المكررة.
للحصول على نظرة عامة أكثر تفصيلاً، راجع إلى دليل مستخدم Pandas حول إعادة التشكيل والجداول المحورية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3