الجداول المحورية والجدولة المتقاطعة
استخدام pd.pivot_table() وpd.crosstab() وإعادة تشكيل البيانات للإحصاءات التلخيصية.
الجداول المحورية والجدولة المتقاطعة درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
إعادة التشكيل لاستخلاص الرؤى
يعيد الجدول المحوري تشكيل البيانات الطويلة في هيئة شبكة، ويلخّص قيمة واحدة عبر محورين تصنيفيين. وهو الجدول المحوري المعروف في جداول البيانات، لكن بطريقة قابلة للبرمجة.
import pandas as pd
df = pd.DataFrame({
"region": ["E", "E", "W", "W", "E"],
"product": ["A", "B", "A", "B", "A"],
"sales": [10, 20, 30, 40, 50],
})pivot_table الأساسي
تأخذ pd.pivot_table الوسيط values (الأرقام المراد تلخيصها)، وindex (الصفوف)، وcolumns (الأعمدة). وتحتسب افتراضيًا متوسط الخلايا المكررة.
pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product A B
# region
# E 30.0 20.0
# W 30.0 40.0اختيار aggfunc
اضبطوا aggfunc للتحكم في طريقة دمج القيم المكررة: المجموع، والمتوسط، والعدد، وغير ذلك. استخدموا قائمة لحساب عدة عمليات دفعة واحدة.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum")
print(pt)دوال aggfunc متعددة
مرّروا قائمة من الدوال لحساب عدة ملخصات جنبًا إلى جنب.
pt = pd.pivot_table(df, values="sales", index="region",
aggfunc=["sum", "mean", "count"])
print(pt)ملء الخلايا المفقودة
تتحول التركيبات التي لا تحتوي على بيانات إلى NaN. ويستبدلها fill_value، غالبًا بالقيمة 0، لإنتاج تقارير مرتبة.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum", fill_value=0)
print(pt)الهوامش (الإجماليات)
اضبطوا margins=True لإضافة الإجماليات الكلية للصفوف والأعمدة، والتي تحمل الاسم "All" افتراضيًا.
pt = pd.pivot_table(df, values="sales", index="region",
columns="product", aggfunc="sum",
fill_value=0, margins=True)
print(pt)مستويات فهرس متعددة
مرّروا قوائم إلى index أو columns لإنشاء تقسيمات هرمية، مثل المنطقة ثم المنتج.
df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
index=["region", "channel"], aggfunc="sum")
print(pt)الجدولة التقاطعية باستخدام crosstab
إن pd.crosstab جدول محوري متخصص يحسب تكرار تركيبات فئتين تصنيفيتين، ولا يحتاج إلى عمود قيم.
ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product A B
# region
# E 2 1
# W 1 1تطبيع crosstab
يحوّل الوسيط normalize الأعداد إلى نسب: "index" لكل صف، و"columns" لكل عمود، أو True بالنسبة إلى الإجمالي الكلي.
ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct) # each row sums to 1.0crosstab مع القيم
قدّموا values وaggfunc لجعل crosstab يلخّص مقياسًا بدلًا من العد، مما يقرّب وظيفته من pivot_table.
ct = pd.crosstab(df["region"], df["product"],
values=df["sales"], aggfunc="sum")
print(ct)pivot_table مقارنةً بـ crosstab
استخدموا pivot_table عند تلخيص قيمة عددية، واستخدموا crosstab عند عدّ تكرارات تركيبات الفئات. كما يتيح crosstab التطبيع إلى نسب في سطر واحد.
اختبار سريع
اختبروا معرفتكم بإعادة التشكيل.
مراجعة
أدوات إعادة التشكيل:
- تلخّص
pd.pivot_table(values, index, columns, aggfunc)مقياسًا - استخدموا
fill_valueللخلايا الفارغة، وmargins=Trueللإجماليات - استخدموا قوائم للفهرس والأعمدة لإنشاء التسلسل الهرمي
- يحسب
pd.crosstabالتركيبات، بينما ينتجnormalizeالنسب
الأسئلة الشائعة
هل درس «الجداول المحورية والجدولة المتقاطعة» مجاني؟
نعم — نص درس «الجداول المحورية والجدولة المتقاطعة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.
ماذا ستتعلم في «الجداول المحورية والجدولة المتقاطعة»؟
استخدام pd.pivot_table() وpd.crosstab() وإعادة تشكيل البيانات للإحصاءات التلخيصية. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟
لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «الجداول المحورية والجدولة المتقاطعة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟
نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- GroupBy والتجميع
- الجداول المحورية والجدولة المتقاطعة
- الدمج والضم المتقدمان
- السلاسل الزمنية في Pandas