"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تدوير إطار بيانات Pandas بشكل فعال؟

كيف يمكنني تدوير إطار بيانات Pandas بشكل فعال؟

تم النشر بتاريخ 2024-12-21
تصفح:754

How Can I Effectively Pivot a Pandas DataFrame?

كيف يمكنني تحويل إطار بيانات إلى محور؟

المحور هو تحويل يأخذ إطار بيانات يحتوي على أعمدة تمثل الفئات وصفوف تمثل القيم، ويعيد توجيهه بحيث تكون الفئات موجودة في الصفوف، والقيم موجودة في الأعمدة، ويتم ضبط الفهرس على قيم الصف الأصلية.

أساسي بناء الجملة:

df.pivot(index=, columns=, values=)

أمثلة:

  • المحور على واحد العمود:
df.pivot(index='row', columns='col', values='val')
  • المحور على أعمدة متعددة:
df.pivot(index=['row', 'item'], columns='col', values='val')
  • التركيز على قيم متعددة:
df.pivot(index='row', columns='col', values=['val0', 'val1'])
  • محور مع تجميع مخصص الوظائف:
df.pivot(index='row', columns='col', values='val', aggfunc='mean')
  • التعامل مع التكرارات المفاتيح:

افتراضيًا، إذا كانت هناك مفاتيح مكررة في تسميات الصفوف أو الأعمدة، فسيتم ظهور خطأ. بدلاً من ذلك، يمكنك استخدام:

df.pivot_table(index='row', columns='col', values='val', fill_value=0)
  • طرق أخرى لـ التمحور:
  • Groupby unstack:

    df.groupby('row', 'col')['val'].mean().unstack(fill_value=0)
  • pd.DataFrame.set_index: استخدم set_index لتعيين محاور الصف والعمود ثم قم بفك التكديس للمحور.
  • pd.crosstab: مصمم خصيصًا لإنشاء الجداول الترافقية أو الجداول المحورية.

متقدم التقنيات المحورية:

  • التبويب المتقاطع (عد التكرار):
pd.crosstab(index=df['row'], columns=df['col'], values=df['val'], aggfunc='count')
  • التجميع المتعدد الوظائف:
df.pivot_table(index='row', columns='col', values='val', aggfunc=['mean', 'sum'])
  • التقسيم الفرعي على عدة أعمدة:
df.pivot_table(index='row', columns=['item', 'col'], values='val', fill_value=0, aggfunc='mean')
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3