0Pricing
Learn AI with Python · درس

السلاسل الزمنية في Pandas

DatetimeIndex وresample() وrolling() وshift() وإنشاء نطاقات التواريخ وإعادة أخذ العينات.

السلاسل الزمنية في Pandas درس مجاني في Learn AI with Python على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn AI with Python، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

الوقت في pandas

يوفّر pandas دعمًا أصيلًا للتاريخ والوقت. ويؤدي تحويل السلاسل إلى طوابع زمنية والفهرسة حسب الوقت إلى إتاحة إعادة أخذ العينات، والنوافذ المتحركة، وسمات التأخير.

تحليل التواريخ باستخدام to_datetime

يحوّل pd.to_datetime السلاسل أو الأرقام إلى كائنات Timestamp صحيحة، ويستنتج تلقائيًا معظم التنسيقات الشائعة.

import pandas as pd
d = pd.to_datetime(["2026-01-01", "2026-01-05", "2026-02-10"])
print(d)
print(d.dtype)   # datetime64[ns]

إنشاء التواريخ باستخدام date_range

ينشئ pd.date_range تسلسلًا متباعدًا بالتساوي من الطوابع الزمنية. ويتحكم رمز freq في الخطوة: D للأيام، وH للساعات، وM لنهاية الشهر، وغير ذلك.

rng = pd.date_range("2026-01-01", periods=5, freq="D")
print(rng)
# 2026-01-01 ... 2026-01-05

إنشاء DatetimeIndex

يؤدي تعيين عمود التاريخ والوقت فهرسًا إلى إنشاء DatetimeIndex، ما يتيح التقطيع المراعي للوقت واستخدام أداتي resample وrolling.

ts = pd.Series([10, 12, 9, 15, 11],
               index=pd.date_range("2026-01-01", periods=5, freq="D"))
print(ts)

التقطيع باستخدام جزء من السلسلة النصية

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

monthly = pd.Series(range(60),
    index=pd.date_range("2026-01-01", periods=60, freq="D"))
print(monthly["2026-02"].head())   # all of February

تقليل معدل أخذ العينات باستخدام resample

تُعدّ resample بمثابة groupby للوقت. قلّل معدل أخذ العينات إلى تردد أخشن، ثم أجرِ التجميع؛ مثل تحويل البيانات اليومية إلى مجاميع أسبوعية.

weekly = monthly.resample("W").sum()
print(weekly.head())

زيادة معدل أخذ العينات وملء القيم

تؤدي إعادة أخذ العينات بتردد أدق إلى إنشاء فجوات. ادمج ذلك مع .ffill() لتمرير القيمة الأخيرة إلى الأمام.

hourly = ts.resample("12H").ffill()
print(hourly.head())

النوافذ المتحركة

تحسب rolling(window) إحصائيةً على نافذة منزلقة، وهي الأساس للمتوسطات المتحركة التي تُنعّم السلاسل المشوشة.

roll = monthly.rolling(window=7).mean()
print(roll.head(10))   # first 6 are NaN (not enough history)

أنواع النوافذ المتحركة

يمكن تطبيق أي عملية اختزال على نافذة متحركة: المتوسط، والمجموع، والانحراف المعياري، والحد الأدنى، والحد الأقصى. ويقيس الانحراف المعياري المتحرك لمدة 7 أيام التقلبات الأخيرة.

vol = monthly.rolling(7).std()
print(vol.tail())

الإزاحة باستخدام shift

تنقل shift(n) القيم إلى الأمام بمقدار n من الفترات، ما ينشئ سمات التأخير ويتيح حساب التغير من فترة إلى أخرى.

df = pd.DataFrame({"sales": [100, 110, 105, 130]})
df["prev"] = df["sales"].shift(1)
df["pct_change"] = (df["sales"] - df["prev"]) / df["prev"]
print(df)

استخراج أجزاء التاريخ

يتيح موصّل .dt الوصول إلى مكونات مثل السنة والشهر ويوم الأسبوع، وهي مكونات مفيدة بوصفها سمات للنموذج.

s = pd.Series(pd.date_range("2026-01-01", periods=3, freq="D"))
print(s.dt.dayofweek)   # 0=Monday
print(s.dt.month)

تحقق سريع

اختبر معرفتك بالسلاسل الزمنية.

مراجعة

أدوات السلاسل الزمنية:

  • استخدم pd.to_datetime للتحليل، وpd.date_range للإنشاء
  • يتيح DatetimeIndex التقطيع باستخدام سلاسل نصية جزئية
  • استخدم resample(freq).agg() لزيادة أو تقليل معدل أخذ العينات
  • استخدم rolling(window) للإحصاءات المتحركة
  • استخدم shift(n) للتأخيرات، و.dt لأجزاء التاريخ

الأسئلة الشائعة

هل درس «السلاسل الزمنية في Pandas» مجاني؟

نعم — نص درس «السلاسل الزمنية في Pandas» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn AI with Python، انتقل إلى CoddyKit PRO. تتضمن دورة Learn AI with Python 4 دروس في المجموع.

ماذا ستتعلم في «السلاسل الزمنية في Pandas»؟

DatetimeIndex وresample() وrolling() وshift() وإنشاء نطاقات التواريخ وإعادة أخذ العينات. تتمرن على Learn AI with Python مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn AI with Python؟

لا تُشترط خبرة سابقة. Learn AI with Python على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «السلاسل الزمنية في Pandas»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn AI with Python هذا؟

نعم. كل درس في Learn AI with Python يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. GroupBy والتجميع
  2. الجداول المحورية والجدولة المتقاطعة
  3. الدمج والضم المتقدمان
  4. السلاسل الزمنية في Pandas
← العودة إلى Learn AI with Python