تُعد معالجة السلاسل الزمنية (Time Series Analysis) وتحليل البيانات المعتمدة على الطوابع الزمنية الدقيقة من الركائز الأساسية في علوم البيانات الحديثة، والتعلم الآلي، والتحليل المالي، وهندسة النظم الموزعة. يواجه مهندسو البيانات وعلماء البيانات تدفقات مستمرة من السجلات اللحظية التي تصل بترددات متفاوتة، تتراوح بين أجزاء من الثانية إلى دقائق معدودة، مما يستدعي توظيف تقنيات متقدمة لإعادة هيكلة هذه القياسات المتباينة وضبط ترددها الزمني لتصبح قابلة للتحليل الإحصائي والاستقراء العلمي. إن القدرة على تجميع التدفقات البيانية الخام ضمن فترات منتظمة—مثل نوافذ الخمس دقائق—تمثل خطوة جوهرية لتصفية الضوضاء البيانية، واكتشاف الأنماط السلوكية، وتخفيض حجم البيانات المعالجة دون الإخلال بسلامة المؤشرات الدقيقة.
تبرز مكتبة Pandas في لغة بايثون كأقوى بيئة برمجية مفتوحة المصدر للتعامل مع هياكل البيانات الجدولية والزمنية بفضل بنيتها التحتية المعتمدة على محرك لغة سي ومصفوفات نمباي، حيث توفر واجهات برمجية عالية الأداء لإجراء التحويلات الزمنية المعقدة وإعادة أخذ العينات بدقة متناهية. تتيح المكتبة للمحللين الانتقال بسلاسة بين الترددات الزمنية المختلفة، وتطبيق الدوال الإحصائية، وإدارة المناطق الزمنية، ومعالجة القيم المفقودة عبر منظومة أدوات متكاملة تدعم العمليات الحسابية المتوازية والمعالجة المتجهة للبيانات الكبيرة.
يهدف هذا الدليل الشامل والمفصل إلى تقديم دراسة أكاديمية وتطبيقية متعمقة لكيفية إجراء التجميع الزمني بفواصل مدتها خمس دقائق باستخدام مكتبة Pandas. سنستعرض الآليات الرياضية والبرمجية التي تحكم عمل دالة إعادة التشكيل الزمني، والفروق الدقيقة بين مختلف تقنيات التجميع، وضبط الحدود الزمنية المغلقة والمفتوحة، ومعالجة الانقطاعات الزمنية، وتحسين كفاءة استهلاك الذاكرة وسرعة التنفيذ، ليكون هذا المرجع بمثابة دليل تقني متكامل للمطورين والباحثين الساعين لتحقيق أقصى درجات الدقة والاحترافية في تحليل السلاسل الزمنية.
1. مقدمة إلى معالجة السلاسل الزمنية وإعادة أخذ العينات في Pandas
1.1 مفهوم السلاسل الزمنية وأهميتها في تحليل البيانات
تمثل السلسلة الزمنية متتالية منتظمة أو غير منتظمة من نقاط البيانات المقاسة والمرصودة على فترات زمنية متعاقبة، حيث يشكل البُعد الزمني متغيراً حرجاً ومحورياً في فهم الظواهر وتطورها الحركي. يختلف تحليل السلاسل الزمنية عن التحليل الإحصائي التقليدي بكون السجلات غير مستقلة إحصائياً، بل ترتبط بعلاقات ارتباط ذاتي وتبعية زمنية تفرض مراعاة الترتيب والمسافات الفاصلة بين كل قراءة وأخرى بدقة بالغة. في كثير من السيناريوهات الواقعية، تُولد المستشعرات وأجهزة القياس وسجلات الخوادم قراءات لحظية غير متزامنة، مما يجعل تجميعها في نوافذ زمنية محددة، مثل فترات الخمس دقائق، أمراً ضرورياً لبناء أرضية مشتركة لمقارنة المتغيرات واستخلاص الاتجاهات العامة.
تكمن أهمية تقسيم البيانات إلى نوافذ زمنية ذات تردد ثابت في قدرتها على التخلص من التذبذبات العشوائية اللحظية (High-Frequency Noise) التي قد تحجب المؤشرات الهيكلية للبيانات. يتيح التجميع بفواصل خمس دقائق رصد التغيرات الدقيقة في سلوك الأنظمة دون إغفال التحولات السريعة التي قد تضيع عند التجميع في فترات أكبر كالساعات أو الأيام. هذا المستوى من الدقة الزمنية يحقق التوازن المثالي بين تقليل العبء الحسابي على خوارزميات المعالجة والحفاظ على الحساسية التحليلية المطلوبة لدراسة الظواهر الديناميكية المتسارعة.
تتعدد التطبيقات العملية لتحليل الفترات الزمنية القصيرة عبر قطاعات شتى؛ ففي الأسواق المالية يُعد تجميع المعاملات في أشرطة سعرية مدتها خمس دقائق معياراً أساسياً لبناء الشموع اليابانية وحساب مؤشرات الزخم والسيولة في التداول الخوارزمي اللحظي. وفي مجال هندسة البرمجيات ومراقبة البنية التحتية، تُقاس أحمال المعالجات، ومعدلات نقل الشبكة، واستهلاك الذاكرة، وعدد الأخطاء في نوافذ خمس دقائق للكشف المبكر عن الاختناقات التشغيلية وتفعيل التوسع التلقائي للخوادم. كما يُعتمد هذا التردد في مراقبة حركة المرور، وإدارة شبكات الطاقة الذكية، وتحليل تدفقات المستخدمين عبر المنصات الرقمية لتقييم تجربة الاستخدام ومعدلات التحويل الفوري.
1.2 دور مكتبة Pandas في التعامل مع التواريخ والأوقات
تحتل مكتبة Pandas الصدارة في النظام البيئي للغة بايثون لمعالجة البيانات بفضل دعمها الاستثنائي والمبني داخلياً لهياكل البيانات الزمنية. تعتمد المكتبة على نموذج بيانات زمني متطور يستند إلى معيار التوقيت نانوثانية لـ 64 بت المتوافق مع مكتبة نمباي، مما يوفر دقة متناهية تمتد من العصور القديمة وصولاً إلى المستقبل البعيد، ويتيح إجراء عمليات المقارنة، والفلترة، والإزاحة الزمنية بأداء حسابي فائق السرعة عبر استغلال العمليات المتجهة المكتوبة بلغة منخفضة المستوى.
يمثل الفهرس الزمني العمود الفقري للعمليات الزمنية داخل إطارات البيانات؛ فعند تحويل عمود التواريخ إلى فهرس أساسي، يتحول إطار البيانات إلى سلسلة زمنية حقيقية مفهرسة ومحسنة للبحث والتجميع المعتمد على النطاقات الزمنية. تتيح هذه البنية للمكتبة إمكانية الوصول إلى البيانات عبر المقاطع الزمنية المباشرة، وحساب الفروق الزمنية، وتطبيق التحويلات الموسمية، والتعامل مع الفواصل الزمنية المتغيرة دون الحاجة إلى كتابة حلقات تكرارية معقدة تؤثر سلباً على سرعة المعالجة واستهلاك الذاكرة.
تتميز المكتبة أيضاً بالتكامل السلس بين الدوال الرياضية والإحصائية المتطورة وهياكل البيانات الزمنية، حيث تستطيع الدوال الحسابية إدراك الترددات الزمنية المحددة والتكيف معها تلقائياً. يتيح ذلك للباحثين ومطوري النظم تطبيق عمليات التجميع، والترشيح، والتسوية، وحساب المتوسطات المتحركة، واستيفاء البيانات المفقودة باستخدام تعليمات برمجية موجزة وقوية تعكس الدقة الرياضية وتضمن قابلية الصيانة البرمجية على المدى الطويل في المشاريع الضخمة.
1.3 الفرق بين تقنيات Groupby التقليدية وإعادة أخذ العينات (Resampling)
على الرغم من أن دالة التجميع العامة المعتمدة على الفئات تشترك ظاهرياً مع دالة إعادة أخذ العينات في تقسيم البيانات إلى مجموعات وتطبيق دوال حسابية عليها، إلا أن هناك فروقاً جوهرية في المنطق الحسابي والتعامل مع البنية الزمنية بين العمليتين. تعتمد طريقة التجميع العامة على مطابقة القيم الفريدة الموجودة فعلياً داخل العمود المستهدف لتكوين المجموعات، دون أي إدراك للعلاقات الترتيبية أو الفواصل المكانية والزمنية المستمرة بين تلك القيم، مما يجعلها أداة لتصنيف الفئات النوعية أو القيم المنفصلة.
في المقابل، صُممت دالة إعادة التشكيل الزمني خصيصاً للبيانات المرتبطة بفهرس زمني، حيث تستند إلى مفهوم التردد الزمني المستمر؛ فالعملية تنشئ شبكة زمنية منتظمة ذات فواصل ثابتة—مثل كل خمس دقائق—بناءً على النطاق الزمني الكلي للبيانات من البداية وحتى النهاية، بغض النظر عن وجود سجلات فعلية في كل فترة من عدمه. تمنح هذه الخاصية ميزة حسابية فائقة لدالة إعادة التشكيل الزمني في فهم البنية الزمنية وتوليد فترات زمنية متسلسلة تلقائياً تعكس الواقع الزمني بدقة رياضية متكاملة.
يتجلى الفارق الأبرز في كيفية معالجة الفترات الزمنية المفقودة؛ فعند استخدام أسلوب التجميع التقليدي، إذا خلت فترة زمنية معينة من السجلات (كأن لا تسجل أي مبيعات بين الساعة الثانية والثانية وخمس دقائق)، فإن تلك الفترة تسقط تماماً من الناتج النهائي، مما يولد سلسلة زمنية متقطعة تحتوي على فجوات غير مرئية. بينما تضمن دالة إعادة التشكيل الزمني إدراج تلك الفترة الفارغة ضمن جدول المخرجات مع إعطائها قيمة فارغة أو صفراً حسب التكوين المختار، مما يحافظ على استمرارية التردد الزمني ويمنع تشويه التحليلات الرياضية والنماذج التنبؤية اللاحقة.
2. المتطلبات الأساسية وتهيئة بيئة العمل للبيانات الزمنية
2.1 تحويل الأعمدة النصية إلى كائنات زمنية (to_datetime)
تبدأ المعالجة السليمة للسلاسل الزمنية بتحويل السلاسل النصية التي تمثل التواريخ والأوقات إلى كائنات زمنية معيارية تفهمها بيئة بايثون ومكتبة بانداس. عند قراءة مجموعات البيانات من ملفات مسطحة مثل ملفات القيم المفصولة بفواصل أو قواعد البيانات، غالباً ما تُستورد الأعمدة الزمنية كأنواع نصية عامة، مما يمنع تنفيذ العمليات الحسابية الزمنية عليها. توفر دالة التحويل الزمني الوسيلة المعيارية لتحليل هذه النصوص وتحويلها بكفاءة إلى كائنات زمنية ذات 64 بت قادرة على التعبير عن الأجزاء الدقيقة من الثانية وحتى السنوات.
تتميز دالة التحويل الزمني بمرونة استثنائية في التعرف التلقائي على التنسيقات الزمنية المختلفة، مثل الصيغة الدولية القياسية أو الصيغ التي تعتمد الترتيب العكسي للأيام والأشهر. ومع ذلك، يوصى دائماً بتحديد صيغة التنسيق بوضوح عبر المعامل المخصص لصيغة التاريخ، حيث يؤدي تحديد الصيغة بدقة إلى تسريع عملية التحويل البرمجي بأضعاف مضاعفة مقارنة بالمطابقة التخمينية، بالإضافة إلى تجنب الالتباس الشهير بين قراءة الأيام والأشهر في التنسيقات الدولية المختلفة.
تتضمن إدارة جودة البيانات معالجة الأخطاء المحتملة أثناء قراءة السلاسل الزمنية، كوجود نصوص مشوهة أو قيم غير صالحة تمثل تواريخ غير منطقية. توفر دالة التحويل خيارات متقدمة للتعامل مع هذه الحالات، مثل خيار تحويل الأخطاء إلى قيم زمنية مفقودة بدلاً من إيقاف تنفيذ البرنامج بالكامل؛ مما يسمح باستكمال مسار المعالجة وفحص السجلات المعطوبة وتنقيتها لاحقاً بشكل منهجي ومنظم دون التأثير على استقرار التطبيقات الإنتاجية.
2.2 تعيين الفهرس الزمني (DatetimeIndex) وأهميته الحسابية
يشكل تعيين الفهرس الزمني الخطوة الهيكلية الحاسمة لتمكين وظائف السلاسل الزمنية المتقدمة في إطارات البيانات. يتم ذلك من خلال استدعاء دالة تعيين الفهرس وتمرير اسم العمود الزمني المحول مسبقاً، مما يحول الفهرس الافتراضي المتسلسل رقمياً إلى فهرس زمني مخصص يحتوي على خصائص بيانية دقيقة تتيح استخراج أجزاء الوقت، مثل الدقائق والساعات وأيام الأسبوع، بشكل فوري ومباشر دون استهلاك موارد إضافية.
تكمن الأهمية الحسابية للفهرس الزمني في تحسين سرعة استرجاع البيانات وتنفيذ عمليات التجميع؛ إذ تعتمد مكتبة بانداس على خوارزميات فهرسة متقدمة تتيح البحث الثنائي والوصول السريع إلى النطاقات الزمنية المحددة. عند استدعاء دوال إعادة أخذ العينات على إطار بيانات ذي فهرس زمني، تستطيع الخوارزمية تحديد نقاط التقسيم وحدود النوافذ الزمنية بكفاءة حسابية متناهية، متجنبة الفحص الشامل لكل صف على حدة، وهو ما يوفر فارقاً ملحوظاً في زمن التنفيذ عند التعامل مع مجموعات بيانات ضخمة تحتوي على ملايين السجلات.
من الضروري التحقق المستمر من نوع الفهرس بعد تعيينه للتأكد من انتمائه الصريح لفئة الفهارس الزمنية؛ حيث إن أي خلل في نوع البيانات قد يؤدي إلى تعطيل دوال التجميع المتخصصة أو إرجاع رسائل خطأ تمنع تنفيذ التحليلات المتقدمة. يتيح الفهرس الزمني المعرف بشكل صحيح استخدام أساليب التقطيع النصي المباشر للوصول إلى البيانات بين تواريخ معينة بسهولة متناهية وبصيغة مقروءة وواضحة برمجياً.
2.3 التحقق من الترتيب الزمني والتعامل مع البيانات غير المنظمة
تتطلب عمليات التجميع الزمني الدقيقة التأكد من أن السجلات مرتبة زمنياً بترتيب تصاعدي صارم قبل الشروع في تطبيق خوارزميات التجميع أو إعادة أخذ العينات. في بيئات جمع البيانات الواقعية، قد تصل السجلات من خوادم متعددة أو أجهزة قياس متباعدة بتسلسل زمني غير متطابق نتيجة تفاوت زمن وصول الحزم الشبكية؛ ولذلك يجب تطبيق دالة فرز الفهرس لترتيب إطار البيانات بالكامل وفقاً للخط الزمني الصحيح لضمان سلامة النوافذ الزمنية المعالجة.
تُعد معالجة الطوابع الزمنية المكررة ركيزة أساسية أخرى في تهيئة البيانات؛ ففي العديد من التطبيقات الحساسة قد تسجل أجهزة القياس أحداثاً متعددة في نفس الجزء من الثانية أو الدقيقة. يتيح الفحص المسبق للتكرارات للمحلل اتخاذ قرارات مدروسة حول كيفية دمج هذه السجلات المتزامنة—سواء عن طريق حساب متوسطها، أو أخذ آخر قيمة واردة، أو الحفاظ عليها لمعالجتها ضمن نافذة التجميع المحددة—مما يمنع حدوث تشوهات في الحسابات التراكمية اللاحقة.
يساعد الترتيب والفرز المسبق في الكشف الفوري عن الفواصل الزمنية غير المنتظمة والفجوات الطويلة داخل السلسلة البيانية قبل تطبيق التردد الثابت، حيث إن معرفة طبيعة توزيع البيانات ودرجة كثافتها تسهم في تحديد المعاملات المثلى لعمليات إعادة العينات؛ كاختيار دوال الإغلاق المناسبة وطرق استيفاء الفترات الفارغة لضمان الحصول على نتائج إحصائية تمثل بدقة سلوك النظام قيد الدراسة.
3. البنية التركيبية الأساسية لدالة resample لفترات الخمس دقائق
3.1 الصيغة العامة للتجميع بفواصل خمس دقائق (‘5min’ أو ‘5T’)
توفر مكتبة بانداس دالة متخصصة ومصممة هندسياً لإعادة التشكيل الزمني تسمى دالة إعادة أخذ العينات، والتي تستقبل معاملاً يحدد التردد الزمني المطلوب تجميع السجلات وفقه. للقيام بتجميع البيانات ضمن فترات مدتها خمس دقائق، تُمرر السلسلة النصية المعيارية المعبرة عن خمس دقائق كمعامل أساسي للدالة، مثل كتابة الرمز المعياري خمس دقائق باللغة الإنجليزية أو استخدام الرمز التقليدي المماثل المعتمد على حرف التاء الذي كان شائعاً في الإصدارات السابقة.
من الناحية المعمارية والبرمجية، لا تقوم دالة إعادة التشكيل الزمني عند استدعائها بحساب القيم المجمعة فوراً، بل تقوم بإنشاء كائن وسيط يسمى كائن إعادة العينات، وهو كائن تأجيلي يشبه إلى حد بعيد الكائن الناتج عن دوال التجميع الفئوية. يحتوي هذا الكائن على كافة التعريفات الهندسية للشبكة الزمنية والنوافذ المقترحة، وينتظر تمرير دالة حسابية أو إحصائية—مثل الجمع أو المتوسط الحسابي—ليقوم بتنفيذ العمليات على كل نافذة زمنية وإرجاع إطار بيانات جديد بالكامل.
يوضح الجدول المفاهيمي التالي بعض التعبيرات النصية الأكثر شيوعاً لتحديد تردد الخمس دقائق والترددات المرتبطة بها في مكتبة بانداس:
- الرمز المعياري ‘5min’: التنسيق الحديث الموصى به رسمياً في توثيق مكتبة بانداس للدلالة على فترات خمس دقائق متتالية.
- الرمز البديل ‘5T’: التنسيق الكلاسيكي القديم الذي يرمز للدقائق، وهو متوافق تماماً مع جميع إصدارات المكتبة الحالية.
- الرمز ‘300s’ أو ‘300S’: تحديد الفاصل بالثواني المباشرة (ثلاثمائة ثانية)، ويؤدي وظيفياً إلى نفس النتيجة الحسابية لنوافذ الخمس دقائق.
3.2 المعاملات الافتراضية والحدود الزمنية لعملية التجميع
تعتمد دالة إعادة التشكيل الزمني على مجموعة من المعاملات الافتراضية الدقيقة التي تحدد كيفية بناء النوافذ الزمنية وبداية ونهاية كل فترة؛ إذ تبدأ الفترات افتراضياً من الدقيقة الصفرية لكل ساعة (مثلاً: 00:00، 00:05، 00:10 وهكذا دواليك). يتم تقييد كل نافذة زمنية بطابع زمني يبدأ عند الدقيقة المحددة ويستمر لمدة خمس دقائق كاملة وفقاً للحدود الرياضية المعينة، مما يوفر اتساقاً معيارياً في توزيع السجلات عبر الساعات المتتالية.
تؤثر المعاملات التلقائية بشكل حاسم على طريقة تفسير النطاقات الزمنية للبيانات؛ حيث تحدد القيم الافتراضية للمعاملات ما إذا كان الطابع الزمني المكتوب في النتيجة يمثل بداية الفترة الزمنية أو نهايتها، وكذلك ما إذا كانت نقطة البداية للفترة مشمولة داخل الحساب أم أن نقطة النهاية هي المشمولة. إن فهم هذه السلوكيات الافتراضية يعد أمراً لا غنى عنه للمحلل المالي أو الإحصائي لتجنب أخطاء الإزاحة الزمنية الشائعة التي قد تؤدي إلى ترحيل البيانات بمقدار فترة كاملة وتشويه النتائج الزمنية.
تتيح المكتبة التحكم الكامل في نقطة الأصل الزمني لعملية التجميع؛ فبينما يتم البدء افتراضياً من رأس الساعة، يمكن تعديل هذا السلوك لتبدأ الفترات من أول طابع زمني مسجل في البيانات، أو وفق إزاحات مخصصة تخدم متطلبات تحليلية معينة، كأن تبدأ النوافذ من الدقيقة الثانية بدلاً من الصفر، مما يبرز مرونة المحرك البرمجي وقدرته على التكيف مع مختلف السيناريوهات العملية المعقدة.
3.3 الفرق بين الفواصل المتناقصة (Downsampling) والتوسيعية (Upsampling)
يُصنف التجميع الزمني بفواصل مدتها خمس دقائق ضمن عمليات خفض التردد أو الفواصل المتناقصة عندما تكون البيانات الأصلية مسجلة بترددات أعلى (كأن تكون البيانات مسجلة كل ثانية أو كل دقيقة). في هذه الحالة، يتم ضغط ودمج عدة سجلات متتالية داخل كل نافذة زمنية مدتها خمس دقائق لإنتاج سجل واحد يلخص النشاط خلال تلك الفترة، مما يؤدي بالضرورة إلى تقليل عدد الصفوف الإجمالي لإطار البيانات وتخفيض حجم الذاكرة المستهلكة وتسريع التحليلات الرياضية اللاحقة.
على النقيض من ذلك، يمثل التوسيع الزمني أو زيادة العينات عملية تحويل البيانات من تردد منخفض إلى تردد أعلى، كتحويل قراءات مسجلة كل ساعة إلى فترات مدتها خمس دقائق. تتطلب هذه العملية توليد صفوف جديدة وسجلات غير موجودة أصلاً في البيانات الخام، مما يستلزم تطبيق دوال الاستيفاء الرياضي أو تمرير القيم السابقة لملء الفراغات الناتجة بين النقاط الزمنية المعروفة للحفاظ على استمرارية المنحنى الزمني.
تتطلب عمليات خفض التردد دائماً تطبيق دالة تجميعية لدمج القياسات المتعددة، مثل حساب المجموع الكلي أو المتوسط الحسابي أو استخراج القيم القصوى؛ حيث تقوم الآلية الحسابية بتطبيق العملية الرياضية المختارة على مصفوفات الأرقام المقابلة لكل نافذة زمنية بكفاءة عالية، منتجة نقطة إحصائية واحدة تمثل بدقة سلوك المتغير خلال الدقائق الخمس المعنية.
4. تطبيق عملي للتجميع بفواصل 5 دقائق باستخدام الجمع (Sum)
4.1 إنشاء إطار بيانات تجريبي دقيق بمعدل دقيقة واحدة
لفهم الآلية الحسابية للتجميع الزمني بشكل عملي وتطبيقي، يمكننا تصور سيناريو واقعي لمعالجة معاملات مالية فورية لمتجر إلكتروني يسجل تدفقات المبيعات ومرتجعات المنتجات بمعدل قراءة لكل دقيقة على مدار ساعة كاملة. يتم بناء هذا النموذج عبر إنشاء سلسلة من الطوابع الزمنية المتتابعة بفواصل دقيقة واحدة باستخدام دالة توليد النطاقات الزمنية المتوفرة في مكتبة بانداس، لتغطي على سبيل المثال الفترة من الساعة الثامنة صباحاً وحتى الساعة التاسعة صباحاً.
يتم إقران هذا النطاق الزمني بمتغيرات كمية عشوائية أو محددة تمثل حجم المبيعات النقدية بالدولار وعدد الطلبات المرتجعة خلال كل دقيقة. بعد ذلك، يُبنى إطار البيانات وتُعين السلسلة الزمنية كفهرس أساسي، مما يضع البيانات في الهيكل المثالي المخصص لمعالجة السلاسل الزمنية؛ حيث يحتوي إطار البيانات الناتج على ستين صفاً يمثل كل صف منها قياساً دقيقاً ومستقلاً لنشاط المتجر خلال دقيقة واحدة محددة.
يوفر هذا الهيكل التجريبي بيئة مثالية لاختبار دقة العمليات الحسابية والتحقق من صحة النتائج المجمعة، حيث يمكن للمحلل مراقبة كيفية تحول هذه الدقائق الستين المفصلة إلى اثنتي عشرة فترة زمنية منتظمة، مدة كل منها خمس دقائق، مما يتيح تتبع حركة التدفقات المالية بوضوح واستكشاف القوة التحليلية الكامنة في اختزال البيانات المتسارعة.
4.2 تطبيق دالة resample(‘5min’).sum() على المتغيرات الحسابية
يتم تنفيذ التجميع الحسابي التراكمي من خلال استدعاء دالة إعادة أخذ العينات وتمرير وسيط الخمس دقائق، متبوعاً باستدعاء دالة الجمع الرياضية مباشرة. يقوم المحرك الداخلي لمكتبة بانداس بتقسيم الستين دقيقة إلى اثنتي عشرة نافذة متتالية: النافذة الأولى تشمل الدقائق من الصفر وحتى ما قبل الدقيقة الخامسة، والنافذة الثانية من الدقيقة الخامسة وحتى ما قبل العاشرة، وهكذا حتى نهاية النطاق الزمني المحدد.
تقوم دالة الجمع بتطبيق عملية الجمع التراكمي على كافة الأعمدة الرقمية الموجودة في إطار البيانات بالتوازي؛ حيث تُجمع قيم المبيعات للدقائق الخمس الأولى معاً لتعطي الناتج التراكمي لمبيعات تلك الفترة، وتُجمع المرتجعات بنفس الأسلوب. يمكن أيضاً تخصيص العملية لتشمل عموداً محدداً فقط بدلاً من كافة الأعمدة عبر تحديد اسم العمود قبل أو بعد استدعاء دالة إعادة التشكيل، مما يمنح مرونة برمجية عالية في توجيه العمليات الحسابية للأهداف المطلوبة حصراً.
تتميز هذه العملية بكفاءة تنفيذ مذهلة تعتمد على معالجة المتجهات؛ حيث تُنفذ عمليات الجمع لمجموعات البيانات الضخمة في أجزاء ضئيلة من الثانية بفضل تحسينات لغة سي المدمجة في مكتبة بانداس، مما يجعل هذا النمط من التجميع البرمجي هو المعيار الذهبي لمعالجة التدفقات المالية وحساب أحجام التداول في البورصات العالمية والأنظمة اللحظية عالية الكثافة.
4.3 تحليل وتفسير المخرجات الناتجة عن عملية الجمع
يُظهر فحص الجدول الناتج عن عملية الجمع اختزالاً هيكلياً دقيقاً؛ حيث تقلص حجم إطار البيانات من ستين سجلاً دقيقاً إلى اثني عشر سجلاً بيانياً فقط، يحمل كل منها طابعاً زمنياً بفارق خمس دقائق ثابت ومنتظم. يعكس كل صف جديد إجمالي القيمة الاقتصادية المتولدة خلال تلك الفترة الزمنية، مما يسهل قراءة الأداء المالي العام دون الغرق في التفاصيل اللحظية المشتتة.
عند تدقيق الأرقام الناتجة ومطابقتها مع البيانات الأصلية، نلاحظ أن كل قيمة مجمعة تطابق بدقة مجموع القيم الفردية للدقائق المكونة للنافذة؛ فإذا كانت مبيعات الدقائق الخمس الأولى هي قيم متفرقة، فإن الناتج المجمع يمثل القيمة الكلية لتلك الدقائق مجتمعة. هذا التحقق الحسابي يؤكد سلامة النطاقات الزمنية وعدم حدوث أي تداخل أو إسقاط غير مقصود للسجلات أثناء إعادة التشكيل الزمني.
تتيح هذه المخرجات للمحللين الماليين استخراج رؤى فورية بالغة الأهمية؛ مثل تحديد فترات الذروة الشرائية بدقة تصل إلى خمس دقائق، ومقارنة وتيرة نمو المبيعات بين فترات متتالية، وحساب معدل المرتجعات مقارنة بالمبيعات في نوافذ زمنية محددة. يمثل هذا التلخيص الزمني الأساس المتين لبناء لوحات التحكم التفاعلية، وتغذية خوارزميات التنبؤ المالي قصير المدى، وإعداد التقارير الإدارية الدورية بكفاءة وموثوقية.
5. دوال التجميع الإحصائية البديلة لفترات الخمس دقائق
5.1 حساب المتوسطات الحسابية والانحراف المعياري (mean, std)
بالإضافة إلى عمليات الجمع التراكمي، توفر مكتبة بانداس منظومة متكاملة من الدوال الإحصائية التي يمكن تطبيقها مباشرة على كائن إعادة أخذ العينات الزمني. يُعد حساب المتوسط الحسابي لفترات الخمس دقائق من أكثر الأساليب شيوعاً عند معالجة القياسات البيئية أو الهندسية مثل درجات الحرارة، ومعدلات استهلاك الطاقة، وسرعة معالجة الطلبات؛ حيث يعبر المتوسط عن القيمة المركزية الممثلة للأداء خلال تلك النافذة الزمنية المحددة بدلاً من التراكم الكلي.
يتكامل حساب المتوسط الحسابي بصورة وثيقة مع حساب الانحراف المعياري لكل نافذة زمنية عبر الدالة المخصصة لذلك؛ إذ يقيس الانحراف المعياري مدى تشتت القراءات وتباعدها عن المتوسط خلال الدقائق الخمس. يتيح هذا المقياس للمحللين رصد درجات الاستقرار أو الاضطراب في النظام؛ فالانحراف المعياري المرتفع في فترة معينة يشير إلى وجود تقلبات حادة وقفزات مفاجئة في القيم، بينما يدل الانحراف المنخفض على استقرار الأداء وثبات القياسات.
تُعد هذه المؤشرات الإحصائية المجمعة ركيزة أساسية في بناء نماذج مراقبة الجودة والكشف عن الشذوذ؛ فعند دمج المتوسط الحسابي والانحراف المعياري لكل فترة خمس دقائق، يمكن إنشاء حدود ثقة ديناميكية لرصد أي سلوك خارج عن النطاق الطبيعي المتوقع بصورة آلية وفورية، مما يدعم اتخاذ القرارات التصحيحية في الوقت المناسب وبأعلى درجات الدقة الإحصائية.
5.2 استخراج القيم القصوى والدنيا والوسيط (max, min, median)
يمثل استخراج القيم القصوى والدنيا خلال كل نافذة زمنية مدتها خمس دقائق أداة جوهرية لتحليل نطاقات التذبذب والوصول إلى مستويات الذروة والانخفاض. في تحليل الأسواق المالية وسلاسل الأسعار اللحظية، يُعد استخراج الحد الأقصى والأدنى لكل خمس دقائق جزءاً لا يتجزأ من بناء أشرطة التداول اليومية (OHLC)، حيث يمثل هذان المقياسان أعلى وأدنى سعر تم الوصول إليه خلال فترة التداول المعنية.
يبرز الوسيط الإحصائي كبديل قوي ومثالي للمتوسط الحسابي في الحالات التي تحتوي فيها البيانات على قيم شاذة أو متطرفة قد تؤدي إلى انحياز المتوسط. يعبر الوسيط عن القيمة الرقمية التي تقسم القراءات داخل نافذة الخمس دقائق إلى نصفين متساويين، مما يوفر مقياساً دقيقاً للنزعة المركزية لا يتأثر بالقفزات المؤقتة أو القراءات المغلوطة الناتجة عن أخطاء لحظية في أجهزة القياس والمستشعرات.
تكتمل هذه المنظومة بتطبيق دالتي القيمة الأولى والقيمة الأخيرة على كائن إعادة العينات الزمني؛ حيث تستخرج الأولى القراءة المسجلة في بداية نافذة الخمس دقائق، بينما تستخرج الثانية آخر قراءة مسجلة قبل إغلاق النافذة. يتيح الجمع بين القيم الأولى، والأخيرة، والقصوى، والدنيا إعادة بناء حركة السلسلة الزمنية بكامل تفاصيلها الهيكلية الأساسية مع تقليص هائل في حجم البيانات المخزنة والمعالجة.
5.3 حساب التكرارات وتعداد الأحداث لكل نافذة (count, size)
يُعد تعداد الأحداث والنشاط الفعلي داخل كل فترة خمس دقائق من المقاييس الحيوية في تقييم كثافة الحركة التشغيلية واكتشاف التغيرات المفاجئة في وتيرة النظم. توفر مكتبة بانداس دالتين أساسيتين لهذا الغرض هما دالة التعداد الإحصائي ودالة الحجم الكلي، وتؤدي كل منهما دوراً محدداً يختلف عن الأخرى في معالجة البيانات غير المكتملة والقيم المفقودة.
تقوم دالة التعداد بحساب عدد السجلات التي تحتوي على قيم فعلية وصالحة فقط داخل كل نافذة زمنية مدتها خمس دقائق، متجاهلة تماماً أي قيم فارغة أو مفقودة قد تتخلل السلسلة. في المقابل، تقوم دالة الحجم بحساب العدد الإجمالي المطلق لكافة الصفوف والقياسات الواقعة داخل النافذة الزمنية، بغض النظر عما إذا كانت تلك القياسات تحتوي على قيم صالحة أو قيم فارغة، مما يوضح الفرق الدقيق بين قياس حجم البيانات الخام وقياس اكتمالها الفعلي.
يساعد تحليل الكثافة العددية عبر هذه الدوال في كشف الفترات الخاملة والنشطة بدقة متناهية؛ ففي خوادم الويب، يشير الانخفاض المفاجئ في تعداد الطلبات خلال نافذة خمس دقائق إلى انقطاع محتمل في الخدمة، بينما يدل الارتفاع الهائل إلى هجمات حرمان من الخدمة أو تدفق غير مسبوق للزوار. يوضح الجدول المقارن التالي الفروق التشغيلية بين هذه الدوال:
- دالة التعداد (count): تحسب عدد السجلات غير الفارغة فقط داخل كل فترة 5 دقائق، وتُستخدم لقياس جودة وتوافر البيانات الفعلية.
- دالة الحجم (size): تحسب إجمالي السجلات والصفوف بغض النظر عن محتواها، وتُستخدم لمراقبة معدل توليد البيانات الكلي للأنظمة.
6. التجميع المخصص والمتعدد للأعمدة المختلفة عبر دالة agg
6.1 تطبيق دوال تجميع متعددة على عمود واحد في فترات 5 دقائق
توفر دالة التجميع المتقدمة التابعة لمكتبة بانداس إمكانات استثنائية لتحليل البيانات؛ حيث تتيح تطبيق قائمة من العمليات الحسابية المتزامنة على عمود زمني واحد ضمن نفس استدعاء إعادة أخذ العينات لفترات الخمس دقائق. بدلاً من الاكتفاء بحساب مقياس واحد، يمكن للمحلل تمرير مصفوفة نصية تحتوي على دوال متعددة مثل الجمع، والمتوسط الحسابي، والانحراف المعياري، والقيمة القصوى في أمر برمجي واحد متكامل.
ينتج عن تطبيق دوال متعددة على عمود واحد إطار بيانات ذو أعمدة متعددة المستويات، حيث يمثل المستوى العلوي اسم العمود الأصلي، بينما يمثل المستوى الفرعي أسماء الدوال الإحصائية المطبقة على ذلك العمود. يوفر هذا الهيكل تنظيماً هرمياً بالغ الأناقة والدقة للمعلومات الإحصائية المستخرجة، ويتيح استعراض كافة أبعاد المتغير الزمني لكل نافذة خمس دقائق بشكل مباشر ومنسق.
لتسهيل التعامل البرمجي مع هذه المخرجات وتجنب تعقيدات الفهارس متعددة المستويات في العمليات اللاحقة، يُنصح دائماً بإعادة تسطيح أسماء الأعمدة وتسميتها بأسماء واضحة تدمج اسم المتغير مع اسم المقياس الإحصائي (مثل: مبيعات_مجموع، مبيعات_متوسط). يسهم هذا التسطيح في جعل إطار البيانات متوافقاً تماماً مع مكتبات الرسم البياني وقواعد البيانات العلائقية ومسارات التعلم الآلي المعيارية.
6.2 تخصيص دوال متباينة لأعمدة مختلفة داخل إطار البيانات
في البيئات التحليلية العملية، نادراً ما تتطابق الطبيعة الإحصائية لجميع الأعمدة الموجودة داخل إطار البيانات؛ فبينما تتطلب بعض المتغيرات حساب المجموع الكلي (مثل أحجام المعاملات أو المبيعات)، تتطلب متغيرات أخرى حساب المتوسط الحسابي (مثل درجات الحرارة أو أسعار الصرف)، وتتطلب متغيرات ثالثة استخراج القيمة القصوى (مثل استهلاك الذاكرة أو سرعة الرياح). تتيح دالة التجميع المتقدمة تلبية هذه المتطلبات المتنوعة بسلاسة عبر تمرير قاموس برمجي يربط كل عمود بالدالة الحسابية المناسبة له بدقة.
يضمن هذا الأسلوب البرمجي المعتمد على القواميس تنفيذاً فائق الكفاءة؛ حيث يقوم المحرك الداخلي بتجميع كافة التعليمات الحسابية وإجرائها في دورة معالجة واحدة على البيانات المقسمة زمنياً لفترات الخمس دقائق، بدلاً من تجزئة العمليات وإعادة تقسيم البيانات عدة مرات لكل عمود على حدة. يحافظ هذا النهج على نظافة الكود البرمجي، ويقلل استهلاك الذاكرة المؤقتة، ويضمن تسريع زمن المعالجة الإجمالي للتطبيقات التحليلية المعقدة.
يوفر هذا التخصيص أيضاً مرونة متقدمة في تمرير قوائم من الدوال المتباينة لبعض الأعمدة وقيم مفردة لأعمدة أخرى ضمن نفس القاموس، مما ينتج إطار بيانات تحليلي شامل ومخصص بالكامل يلبي المتطلبات الدقيقة للتقارير التنفيذية ولوحات المتابعة الحية في خطوة برمجية واحدة تتسم بالأناقة والقوة الرياضية.
6.3 بناء وتطبيق دوال مخصصة (Custom Functions) للتجميع
على الرغم من ثراء مكتبة بانداس بالدوال الإحصائية القياسية، إلا أن التحليلات المتقدمة قد تتطلب حساب مقاييس مخصصة غير متوفرة ضمن الدوال المدمجة، كحساب الفرق بين المئين التسعين والمئين العاشر، أو تطبيق صيغ رياضية لتقييم المخاطر المالية لكل نافذة زمنية مدتها خمس دقائق. تتيح دالة التجميع المتقدمة تمرير دوال مخصصة مكتوبة من قبل المستخدم أو دوال لامدا اللحظية لتنفيذ هذه الحسابات المعقدة على كل نافذة زمنية.
تستقبل الدالة المخصصة مصفوفة أو سلسلة زمنية تحتوي على كافة السجلات الواقعة داخل نافذة الخمس دقائق، وتقوم بتنفيذ العمليات الرياضية المحددة وإرجاع قيمة رقمية مفردة تمثل تلك الفترة. يتيح ذلك للباحثين صياغة معادلات مخصصة بالكامل تعكس بدقة طبيعة الظاهرة المدروسة، مع الاستفادة الكاملة من بنية التقسيم الزمني المتقدمة التي توفرها مكتبة بانداس.
يجب مراعاة متطلبات الأداء الحسابي عند كتابة الدوال المخصصة؛ حيث إن تمرير دوال بلغة بايثون الصرفة داخل التجميع الزمني قد يؤدي إلى إبطاء المعالجة مقارنة بالدوال المدمجة والمكتوبة بلغة سي. يُنصح بالاعتماد على دوال مكتبة NumPy المتجهة داخل الدوال المخصصة لتسريع العمليات الحسابية وتجنب الحلقات التكرارية البطيئة عند التعامل مع سلاسل زمنية تحتوي على مئات الآلاف من الفترات الزمنية.
7. التحكم في حدود الفترات الزمنية ومواضع الإغلاق (Closed and Label)
7.1 فهم معامل الإغلاق (closed=’left’ مقابل closed=’right’)
يُعد معامل الإغلاق من أدق وأهم المعاملات الرياضية في دالة إعادة التشكيل الزمني، حيث يحدد طبيعة الفترة الرياضية للنوافذ الزمنية وما إذا كانت الفترة مغلقة من الطرف الأيسر (البداية) أو من الطرف الأيمن (النهاية). في التدوين الرياضي الكلاسيكي، تعني الفترة المغلقة من اليسار أن الطابع الزمني للبداية مشمول ضمن الحسابات بينما الطابع الزمني للنهاية مستبعد، وتُكتب رياضياً على صورة نصف مفتوحة نصف مغلقة تبدأ بقوس مربع وتنتهي بقوس هلالي.
عند ضبط معامل الإغلاق ليكون نحو اليسار، فإن نافذة الخمس دقائق الممتدة من الساعة 12:00 إلى 12:05 ستشمل كافة السجلات المسجلة عند الساعة 12:00:00 تماماً وحتى الساعة 12:04:59.999، بينما سيتم استبعاد السجل المسجل عند 12:05:00 ليُرحل تلقائياً إلى بداية النافذة التالية. يُعد هذا النمط هو السلوك المعياري والافتراضي المفضل في معظم التخصصات الهندسية وعلوم البيانات لتوافقه مع المنطق الطبيعي لتدفق الوقت.
في المقابل، عند ضبط المعامل ليكون نحو اليمين، تصبح الفترة مغلقة من الطرف الأيمن ومفتوحة من الطرف الأيسر؛ وبالتالي فإن نفس النافذة ستستبعد السجل الواقع عند الساعة 12:00:00 تماماً وتتضمن السجلات المسجلة حتى 12:05:00 بدقة. يشيع استخدام هذا الإعداد في التطبيقات المصرفية والمالية حيث تُقفل الحسابات الدورية في نهاية الدقيقة الأخيرة للفترة الزمنية المحددة.
7.2 ضبط التسمية الزمنية للفترة (label=’left’ مقابل label=’right’)
يرتبط معامل التسمية ارتباطاً وثيقاً بمعامل الإغلاق، ولكنه يختص بتحديد الطابع الزمني الذي سيظهر كعنوان أو مؤشر للفترة المجمعة في الجدول النهائي. يحدد هذا المعامل ما إذا كان إطار البيانات سيعرض الطابع الزمني لبداية النافذة (الحد الأيسر) أو الطابع الزمني لنهايتها (الحد الأيمن) ليمثل القيمة الإحصائية الناتجة عن تجميع الدقائق الخمس.
إذا تم تعيين معامل التسمية نحو اليسار، فإن النافذة التي تجمع البيانات بين الساعة 12:00 و 12:05 ستحمل الطابع الزمني 12:00 في جدول النتائج؛ وهو ما يسهل على القارئ معرفة وقت بدء النشاط المقاس. أما إذا تم تعيين المعامل نحو اليمين، فستحمل نفس النافذة الطابع الزمني 12:05، وهو أسلوب مفضل في تقارير إتمام العمليات للإشارة إلى أن القيمة المعروضة تمثل الناتج التراكمي المنجز حتى لحظة إغلاق الفترة عند الدقيقة الخامسة.
يعد التوافق والتنسيق بين إعدادات التسمية وإعدادات الإغلاق أمراً جوهرياً لضمان اتساق القراءات وتجنب الالتباس التحليلي؛ فالخلط غير المدروس بين هذه المعاملات قد يؤدي إلى إزاحة بصرية غير صحيحة للبيانات بمقدار خمس دقائق كاملة، مما قد يترتب عليه تفسير خاطئ لتوقيت وقوع الأحداث الحرجة أو اتخاذ قرارات تداول غير دقيقة في النظم اللحظية.
7.3 أمثلة مقارنة للأثر الإحصائي لتغيير حدود الإغلاق
لفهم التأثير الإحصائي العميق لتغيير هذه المعاملات، تخيل وجود سجل مالي مسجل عند الساعة 12:05:00 تماماً بقيمة مائة دولار. في الحالة الأولى، عند استخدام الإغلاق والتسمية من اليسار، سيتم احتساب هذه القيمة ضمن النافذة الممتدة من 12:05 إلى 12:10 وستظهر تحت الطابع الزمني 12:05. أما في الحالة الثانية، عند ضبط الإغلاق والتسمية نحو اليمين، فإن نفس هذا السجل سيندرج ضمن النافذة السابقة الممتدة من 12:00 إلى 12:05 وسيظهر تحت الطابع الزمني 12:05 أيضاً ولكن بدلالة إحصائية مختلفة تماماً تعبر عن نهاية الفترة السابقة.
يوضح التحليل المقارن أن هذا التغيير في الحدود لا يغير فقط من قيم المجاميع لكل فترة، بل يؤثر أيضاً على كافة المقاييس الإحصائية المشتقة مثل المتوسط الحسابي والانحراف المعياري ومواضع القيم القصوى والدنيا. لذا، يجب على مهندس البيانات توثيق المعاملات المختارة بعناية فائقة لضمان تماثل النتائج عبر بيئات التحليل المختلفة وتوافقها مع المعايير المعمول بها في المجال التطبيقي المعني.
يوضح الجدول التلخيصي التالي التركيبات الأكثر شيوعاً لمعاملي الإغلاق والتسمية وسياقات استخدامها المفضلة:
- closed=’left’, label=’left’: المعيار الافتراضي والأنسب للتحليلات العامة ومراقبة النظم والمستشعرات الهندسية.
- closed=’right’, label=’right’: المعيار الشائع في القطاع المالي، وبناء شموع التداول، وتقارير الإغلاق المصرفي.
- التركيبات المختلطة: تُستخدم في سيناريوهات خاصة جداً تتطلب نمذجة رياضية محددة لبداية الأحداث ونهاياتها.
8. معالجة القيم المفقودة والفترات الفارغة بعد إعادة أخذ العينات
8.1 استراتيجيات التعويض بالأصفار (fillna) والتنظيف المباشر
عند إجراء إعادة أخذ العينات بفواصل منتظمة كفترات الخمس دقائق، قد تواجه السلسلة الزمنية فترات انقطاع لا تتضمن أي نشاط مسجل في البيانات الخام الأصلية (مثل توقف المبيعات ليلاً أو انقطاع إرسال مستشعر معين). ينشئ المحرك الزمني في هذه الحالة صفوفاً تحمل الطوابع الزمنية لتلك الفترات ولكن بقيم فارغة للدلالة على غياب السجلات؛ مما يستدعي تطبيق استراتيجيات تنظيف ومعالجة ملائمة لطبيعة المتغيرات.
في المتغيرات التراكمية الحجمية مثل إجمالي المبيعات، أو عدد الزوار، أو كمية الكهرباء المستهلكة، يُعد التعويض بالأصفار عبر دالة ملء الفراغات هو الخيار الرياضي والمنطقي الأدق؛ حيث يعكس الصفر الحقيقة الواقعية لغياب أي تدفق خلال تلك الدقائق الخمس. يؤدي ملء الفراغات بالصفر إلى استعادة اكتمال المصفوفات الرقمية وتمكين الدوال الحسابية اللاحقة من العمل دون مواجهة قيم غير معرفة.
ومع ذلك، يجب الحذر التام من تطبيق التعويض بالصفر على المتغيرات المستمرة والمكثفة؛ مثل درجات الحرارة، أو الضغط الجوي، أو مؤشرات أسعار الأسهم. ففي هذه الحالات، لا يعني غياب القراءة أن درجة الحرارة أصبحت صفراً، بل يعني غياب القياس الفعلي، ويؤدي وضع الصفر هنا إلى تشويه إحصائي جسيم يؤثر سلباً على المتوسطات الحسابية ونماذج التنبؤ، مما يستدعي استخدام أساليب بديلة كالاستيفاء الرياضي.
8.2 تطبيق أساليب الاستيفاء الخطي والزمني (Interpolation)
يمثل الاستيفاء الرياضي الوسيلة الأكثر دقة لتقدير القيم المفقودة في السلاسل الزمنية المستمرة بعد إعادة أخذ العينات؛ حيث تقوم دالة الاستيفاء في مكتبة بانداس بتقدير القيمة المجهولة بناءً على المنحنى الرياضي الواصل بين القيمة السابقة الصالحة والقيمة اللاحقة. يوفر الاستيفاء الخطي أبسط هذه النماذج عبر رسم خط مستقيم بين النقطتين وتوزيع الفروق بالتساوي على الفترات الزمنية الفارغة.
توفر مكتبة بانداس أيضاً خوارزمية الاستيفاء الزمني المتخصصة، والتي تأخذ في الحسبان المسافات الزمنية الفعلية بين الطوابع الزمنية عند تقدير القيم المفقودة، بدلاً من التعامل مع الصفوف كوحدات متساوية المسافات. يُعد هذا الأسلوب بالغ الأهمية عند معالجة سلاسل زمنية ذات فجوات غير متساوية، حيث يضمن الحفاظ على التدرج الواقعي للمتغيرات دون إحداث قفزات مفاجئة تشوه الطبيعة الديناميكية للبيانات.
بالإضافة إلى الاستيفاء الخطي والزمني، تتيح المكتبة تطبيق نماذج استيفاء متعددة الحدود ونماذج الشرائح المنحنية (Spline) لحساب التغيرات الانسيابية المنحنية في الظواهر الفيزيائية والبيولوجية المعقدة، مما يمنح المحللين أدوات رياضية رفيعة المستوى لإعادة بناء السلاسل الزمنية المتقطعة بأقصى درجات الواقعية والدقة العلمية.
8.3 استخدام تقنيات التمرير للأمام والخلف (ffill و bfill)
تُعد تقنيتا التمرير للأمام والتمرير للخلف من أهم الأساليب الكلاسيكية المتبعة لمعالجة القيم الفارغة في السلاسل الزمنية، خاصة في التطبيقات اللحظية والمالية. تقوم تقنية التمرير للأمام بنسخ آخر قيمة صالحة مسجلة وتكرارها في كافة الفترات الزمنية الفارغة التالية حتى تظهر قراءة جديدة في السلسلة. يُعرف هذا الأسلوب في التحليل المالي بحمل القيمة الأخيرة، وهو المنطق المعتمد لتحديد أسعار الأصول في فترات انعدام التداول.
على الجانب الآخر، تقوم تقنية التمرير للخلف بعكس هذا السلوك؛ حيث تأخذ أول قيمة صالحة مستقبلية وتمررها إلى الفترات الفارغة السابقة لها. على الرغم من فائدة هذا الأسلوب في بعض السيناريوهات الاسترجاعية المحددة، إلا أنه يجب الحذر التام عند تطبيقه في بناء نماذج التعلم الآلي والتنبؤ، لتجنب خطأ التسريب الزمني الناتج عن استخدام معلومات مستقبلية غير متاحة في اللحظة الزمنية قيد القياس.
تتيح مكتبة بانداس تقييد عمليات التمرير للأمام والخلف بتحديد حد أقصى لعدد الفترات المتتالية المسموح بملئها؛ مما يمنع استمرار تكرار القيمة القديمة عبر فجوات زمنية طويلة جداً قد تجعل البيانات غير واقعية، ويحفز المحلل على التدخل اليدوي أو معالجة الانقطاعات الكبيرة بوسائل أكثر ملاءمة وعمقاً.
9. التجميع بفواصل 5 دقائق دون الحاجة لتحويل العمود الزمني إلى فهرس
9.1 استخدام المعامل on داخل دالة resample
في العديد من هياكل البيانات المعقدة، قد يرغب مهندس البيانات في الحفاظ على الفهرس الأصلي لإطار البيانات—سواء كان فهرساً رقمياً متسلسلاً أو فهرساً مركباً لأسماء الكيانات—دون تحويل العمود الزمني إلى فهرس أساسي. توفر دالة إعادة أخذ العينات حلاً برمجياً متقدماً لهذه الحالة من خلال المعامل المخصص لاختيار العمود المستهدف، والذي يستقبل اسم العمود الزمني مباشرة لتنفيذ التجميع الزمني بناءً عليه.
يشترط لاستخدام هذا المعامل أن يكون العمود الممرر من نوع كائن زمني معتمد، حيث يقوم المحرك الداخلي بقراءة الطوابع الزمنية من ذلك العمود وتقسيم إطار البيانات إلى فترات الخمس دقائق مع الإبقاء على بنية الفهرس العام أو استبداله بالشبكة الزمنية المجمعة في النتيجة النهائية. يوفر هذا الأسلوب كوداً برمجياً أنيقاً يختصر خطوة تعيين الفهرس وإلغائه، ويسهل دمج المعالجة الزمنية ضمن خطوط أنابيب تحويل البيانات المؤتمتة.
تتجلى فائدة هذا المعامل عند العمل مع أطر بيانات تتطلب معالجة سريعة لعدة أعمدة زمنية مختلفة بالتناوب (مثل تاريخ إنشاء الطلب وتاريخ شحن الطلب)؛ حيث يمكن التبديل بينها في عمليات التجميع الزمني بسهولة متناهية دون الحاجة لإعادة هيكلة الفهرس الأساسي للجدول في كل خطوة تحليلية.
9.2 دمج دالة pd.Grouper مع دالة groupby التقليدية
يمثل كائن المجمع الزمني المتوفر في مكتبة بانداس الأداة الأكثر مرونة وقوة لإجراء التجميع متعدد الأبعاد الذي يجمع بين الترددات الزمنية والتصنيفات الفئوية غير الزمنية. من خلال دمج هذا الكائن داخل دالة التجميع العامة، يستطيع المحلل كتابة استعلامات تجميعية تدمج الفواصل الزمنية لفترات الخمس دقائق مع أعمدة نصية مثل رمز المنتج، أو الفرع الجغرافي، أو نوع العملية في خطوة واحدة متكاملة.
تتميز هذه التركيبة بقدرتها على تجميع البيانات وفق شبكة زمنية منتظمة لكل فئة مستقلة على حدة؛ مما يتيح على سبيل المثال حساب إجمالي مبيعات كل فرع تجاري على حدة في نوافذ خمس دقائق متتالية. ينتج عن هذه العملية إطار بيانات مفهرس بفهرس متعدد المستويات يجمع بين اسم الفرع والفترة الزمنية، مما يوفر بنية بيانات مثالية للتحليلات المقارنة المعقدة.
تستقبل هذه الأداة كافة المعاملات الزمنية المتقدمة التي تدعمها دالة إعادة العينات؛ بما في ذلك تحديد التردد الزمني، وضبط معاملي الإغلاق والتسمية، وتحديد نقطة الأصل الزمني، مما يجعلها الخيار البرمجي الأفضل والأنسب لبناء مسارات معالجة البيانات التحليلية المتقدمة (OLAP) وتغذية مستودعات البيانات بالجداول المجمعة متعددة المحاور.
9.3 مقارنة الأداء بين DatetimeIndex والمعامل on
تُظهر دراسات الأداء الحسابي في مكتبة بانداس وجود فروق ملحوظة في سرعة التنفيذ واستهلاك الذاكرة بين التجميع المعتمد على الفهرس الزمني المباشر والتجميع المعتمد على المعاملات البديلة أو المجمعات الزمنية. عند تعيين العمود الزمني كفهرس رسمي لإطار البيانات، يتم تحسين العمليات الرياضية مسبقاً في الذاكرة العشوائية، مما يمنح الفهرس الزمني أفضلية واضحة في سرعة التجميع عند تكرار العمليات لمرات عديدة.
في المقابل، يتطلب استخدام المعامل البديل أو دالة المجمع الزمني إنشاء بنية فهرسة مؤقتة في الخلفية أثناء تنفيذ العملية، مما يضيف حملاً حسابياً إضافياً ضئيلاً قد لا يكون ملحوظاً في مجموعات البيانات الصغيرة والمتوسطة، ولكنه يصبح مؤثراً بوضوح عند معالجة ملايين الصفوف من البيانات اللحظية عالية التردد. ومع ذلك، تعوض المرونة الهيكلية الفائقة لهذه المعاملات هذا الفارق الضئيل في معظم التطبيقات العملية المعتادة.
يوضح الجدول المقارن التالي المعايير الأساسية للاختيار بين هذه الأساليب:
- الفهرس الزمني المباشر: السرعة القصوى، الأداء المثالي للبيانات الضخمة، والأنسب للعمليات الحسابية المتكررة على سلسلة واحدة.
- المعامل on داخل resample: كود موجز، عدم التأثير على الفهرس الأصلي، والأنسب للمسارات الخطية السريعة.
- دالة pd.Grouper: المرونة القصوى للتجميع متعدد الفئات والأبعاد الزمنية في نفس الاستدعاء الحسابي.
10. التعامل مع المناطق الزمنية والإزاحات الزمنية المعقدة (Timezones & Offsets)
10.1 توحيد النطاقات الزمنية وتأثيرها على فترات الـ 5 دقائق
تتطلب معالجة السلاسل الزمنية العالمية إدارة دقيقة للنطاقات الزمنية لتجنب الأخطاء الناتجة عن تفاوت التوقيت المحلي بين خوادم جمع البيانات المنتشرة حول العالم. توفر مكتبة بانداس دعماً شاملاً لقاعدة بيانات النطاقات الزمنية القياسية (IANA)، مما يتيح توطين السلاسل الزمنية الساذجة (التي لا تحتوي على معلومات المنطقة الزمنية) أو تحويل السلاسل الزمنية المحددة من نطاق زمني محلي إلى التوقيت العالمي المنسق (UTC).
يُعد توحيد السلسلة الزمنية على التوقيت العالمي المنسق قبل إجراء التجميع بفواصل خمس دقائق خطوة أساسية لضمان سلامة النوافذ الزمنية، خاصة عند التعامل مع تغيرات التوقيت الصيفي (DST)؛ حيث يؤدي الانتقال الموسمي في التوقيت المحلي إلى تكرار ساعة زمنية كاملة في الخريف أو إسقاط ساعة في الربيع، مما قد يؤدي إلى إنشاء نوافذ زمنية مكررة أو فجوات وهمية إذا لم تتم إدارة المناطق الزمنية باحترافية.
تضمن دالة إعادة التشكيل الزمني في مكتبة بانداس الحفاظ على فواصل زمنية متساوية ودقيقة تبلغ خمس دقائق على طول الخط الزمني المستمر عند استخدام سلاسل محددة النطاق الزمني، مما يمنع حدوث أي تشوه في حساب المؤشرات التراكمية والإحصائية عند عبور حدود التوقيت الصيفي أو الانتقال بين النطاقات الجغرافية المختلفة.
10.2 ضبط إزاحة نقطة البداية باستخدام معامل origin و offset
تبدأ نوافذ الخمس دقائق افتراضياً من الدقيقة الصفرية لكل ساعة، إلا أن العديد من السيناريوهات التشغيلية تتطلب مواءمة النوافذ الزمنية مع أحداث محددة تبدأ في أوقات غير متوافقة مع الصفر المئوي؛ كأن تبدأ نوبات العمل في المصانع عند الدقيقة الثالثة عشرة، أو تبدأ جلسات التداول عند أوقات افتتاح خاصة. توفر مكتبة بانداس معاملي الأصل الزمني والإزاحة للتحكم المطلق في نقطة ارتكاز الشبكة الزمنية.
يتيح معامل الأصل الزمني للمحلل تحديد النقطة المرجعية التي تُحسب منها فواصل الخمس دقائق؛ حيث يمكن ضبطه ليبدأ من أول طابع زمني موجود فعلياً في البيانات، أو من تاريخ ووقت مخصص يتم تمريره كقيمة ثابتة. تقوم الخوارزمية في هذه الحالة ببناء فترات الخمس دقائق بالتتابع انطلاقاً من ذلك الأصل المحدد، مما يضمن اتساق النوافذ مع الدورة التشغيلية للنظام قيد المراقبة.
يُستخدم معامل الإزاحة لتطبيق إزاحة زمنية ثابتة على حدود النوافذ؛ فبتمرير إزاحة مدتها دقيقة واحدة مثلاً، تتحول فترات الخمس دقائق لتصبح من 00:01 إلى 00:06، ومن 00:06 إلى 00:11 وهكذا دواليك. يوفر هذا المزيج من المعاملات إمكانات لا محدودة لهندسة النوافذ الزمنية لتتطابق بدقة متناهية مع الواقع العملي المعقد في شتى المجالات التطبيقية.
10.3 معالجة التداخلات الزمنية والبيانات المجمعة عبر أيام متعددة
عند تنفيذ التجميع الزمني لفترات تمتد عبر أيام متتالية، تبرز الحاجة إلى إدارة انتقال النوافذ الزمنية عبر منتصف الليل بدقة متناهية. تضمن مكتبة بانداس استمرارية الشبكة الزمنية لفترات الخمس دقائق دون أي انقطاع أو تشويه عند عبور الساعة 23:55 إلى الساعة 00:00 لليوم التالي؛ حيث تُقفل النافذة الأخيرة لليوم المنتهي وتبدأ النافذة الأولى لليوم الجديد بسلاسة رياضية تامة.
في العديد من القطاعات الصناعية والمالية، تتوقف تدفقات البيانات خلال عطلات نهاية الأسبوع أو ساعات إغلاق الأسواق المحددة، مما يولد فجوات زمنية طويلة تتكرر بانتظام. يمكن للمحللين دمج دوال إعادة أخذ العينات مع دوال الفلترة المتقدمة وجداول أيام العمل المخصصة لعزل فترات الإغلاق وتجنب إنشاء آلاف الصفوف الفارغة غير المرغوب فيها أثناء فترات توقف النشاط الفعلي.
تساعد هذه الإدارة المتقدمة في الحفاظ على تجانس المؤشرات الإحصائية المجمعة وملاءمتها للمقارنة اليومية؛ مما يتيح حساب المتوسطات اليومية لفترات الخمس دقائق، وتحليل المنحنيات النمطية اليومية للنشاط، وبناء مصفوفات المقارنة الزمنية المتقدمة عبر الأسابيع والأشهر بكفاءة واستقرار برمجي متكامل.
11. النوافذ الزمنية المتحركة لفترات 5 دقائق (Rolling vs Resampling)
11.1 الفرق المفاهيمي بين النوافذ الثابتة والنوافذ المتحركة
يخلط العديد من ممارسي علم البيانات بين مفهوم إعادة التشكيل الزمني ومفهوم النوافذ المتحركة عند التعامل مع فترات الخمس دقائق؛ على الرغم من الاختلاف الجوهري بينهما في الغاية التحليلية والبنية الهيكلية للبيانات الناتجة. تقوم دالة إعادة العينات بإنشاء نوافذ ثابتة ومستقلة تماماً لا تتداخل فيما بينها؛ حيث تُقسم السلسلة الزمنية إلى أجزاء منفصلة مدة كل منها خمس دقائق، وينتج عن ذلك اختزال عدد صفوف إطار البيانات الأصلي بصورة حتمية.
في المقابل، تعتمد النوافذ المتحركة على مفهوم النافذة المنزلقة المستمرة؛ حيث تتحرك النافذة خطوة بخطوة مع كل قراءة جديدة في السلسلة الزمنية، لتقوم بحساب المقياس الإحصائي (كالمتوسط أو الجمع) لآخر خمس دقائق سابقة لتلك القراءة المحددة. ينتج عن هذه العملية إطار بيانات يحافظ على نفس عدد السجلات والصفوف الأصلية تماماً، حيث يحمل كل صف ملخصاً إحصائياً للنافذة الزمنية الممتدة لخمس دقائق قبله.
ينعكس هذا الاختلاف المفاهيمي على طريقة عرض الرسوم البيانية وتفسيرها؛ فبينما تُظهر مخرجات إعادة العينات درجات مدرجة تمثل كل فترة مجمعة على حدة، تُنتج النوافذ المتحركة منحنيات انسيابية فائقة السلاسة تعمل على ترشيح الترددات العالية وتوضيح الاتجاه العام للمتغيرات مع الحفاظ على التزامن الدقيق لكل نقطة زمنية أصلية.
11.2 دمج دالة rolling(‘5min’) مع العمليات الحسابية
توفر مكتبة بانداس دعماً استثنائياً لتطبيق النوافذ المتحركة المعتمدة على الفترات الزمنية الزمنية مباشرة عبر تمرير المعيار النصي خمس دقائق داخل دالة النوافذ المتحركة، بشرط أن يكون إطار البيانات مفهرساً بفهرس زمني مرتب تصاعدياً. في هذه الحالة، لا تعتمد النافذة على عدد ثابت من الصفوف، بل تعتمد على النطاق الزمني الفعلي، مما يجعلها مثالية للبيانات المسجلة بترددات غير منتظمة.
تتيح الدالة معاملات تحكم متقدمة؛ مثل معامل الحد الأدنى للفترات، والذي يحدد عدد القراءات الصالحة الواجب توافرها داخل نافذة الخمس دقائق لإرجاع قيمة إحصائية بدلاً من القيمة المفقودة. كما يمكن ضبط معامل الإغلاق لتحديد ما إذا كانت النقطة الحالية مشمولة في حساب النافذة السابقة أم مستبعدة، مما يوفر دقة متناهية في صياغة المؤشرات الفنية والتحليلية.
يُعد حساب المتوسط المتحرك والانحراف المعياري المتحرك لآخر خمس دقائق من أكثر التطبيقات استخداماً في هندسة الميزات ونظم الكشف عن التغيرات المفاجئة؛ حيث يوفر المؤشر المتحرك خط أساس متجدد لحظة بلحظة لمقارنة القراءة الحالية مع متوسط الأداء في الدقائق الخمس الماضية، مما يتيح رصد القفزات اللحظية بدقة متناهية ودون تأخير زمني كبير.
11.3 معايير المفاضلة واختيار التقنية الملائمة لكل حالة تحليلية
تعتمد المفاضلة بين استخدام إعادة التشكيل الزمني أو النوافذ المتحركة لفترات الخمس دقائق على الغرض النهائي من المعالجة التحليلية وطبيعة النظام البرمجي المستهدف. إذا كان الهدف الأساسي هو تقليص حجم البيانات، وإعداد التقارير الدورية المنتظمة، وتغذية قواعد البيانات المجمعة، أو بناء الشموع السعرية الثابتة، فإن دالة إعادة العينات هي الخيار الأمثل هندسياً وحسابياً لتخفيض الأعباء التشغيلية وتلخيص البيانات.
أما إذا كان الهدف هو تدريب نماذج التعلم الآلي للتنبؤ الفوري، أو بناء مؤشرات فنية حية لروبوتات التداول، أو مراقبة الانحرافات اللحظية في خطوط الإنتاج دون فقدان التزامن اللحظي للقياسات، فإن النوافذ المتحركة تصبح الخيار الإجباري والأنسب علمياً؛ نظراً لقدرتها على توفير سياق إحصائي مستمر لكل حدث في لحظة وقوعه بالدقة الكاملة.
يوضح الجدول المقارن التالي أبرز الفروق الهندسية بين التقنيتين:
- إعادة أخذ العينات (Resampling): فترات منفصلة غير متداخلة، يقلص عدد السجلات، يحفظ الذاكرة، ويُستخدم للتقارير والتحليلات الإجمالية.
- النوافذ المتحركة (Rolling): فترات مستمرة متداخلة، يحافظ على عدد السجلات الأصلي، ويُستخدم للمؤشرات الحية وتغذية نماذج الذكاء الاصطناعي.
12. أفضل الممارسات وتحسين الأداء الحسابي في معالجة الفترات الزمنية
12.1 تحسين استهلاك الذاكرة وتحديد أنواع البيانات الدقيقة
عند معالجة السلاسل الزمنية الضخمة التي تحتوي على مئات الملايين من السجلات اللحظية، يصبح تحسين استهلاك الذاكرة العشوائية عاملاً حاسماً في استقرار النظم وسرعة التنفيذ. تقوم مكتبة بانداس افتراضياً بتعيين الأرقام العشرية كأرقام بدقة 64 بت والأعداد الصحيحة كأعداد بدقة 64 بت، وهو ما يستهلك حجماً كبيراً من الذاكرة قد لا يكون ضرورياً لمعظم القياسات الواقعية.
يُعد تحويل الأعمدة الرقمية إلى أنواع بيانات أصغر حجماً—مثل تحويل الأرقام العشرية إلى دقة 32 بت أو الأعداد الصحيحة إلى أحجام ملائمة لقيم المتغيرات—خطوة أولى بالغة الفاعلية تؤدي إلى تخفيض حجم إطار البيانات في الذاكرة بنسبة تصل إلى النصف، مما يسرع عمليات القراءة والتجميع الزمني بفواصل الخمس دقائق بشكل ملحوظ نتيجة تقليل حجم البيانات المتبادلة مع المعالج المركزي.
بالإضافة إلى ذلك، يُنصح بشدة بتحويل الأعمدة النصية المصاحبة التي تحتوي على قيم متكررة (مثل أسماء الفروع، أو تصنيفات المنتجات، أو معرفات الأجهزة) إلى نوع البيانات الفئوية (Categorical)؛ حيث يؤدي ذلك إلى تخزين النصوص كرموز رقمية مدمجة في الذاكرة، مما يوفر مساحة شاسعة ويسرع عمليات التجميع متعدد الأبعاد المعتمدة على الفئات الزمنية والنصية معاً.
12.2 تجنب الأخطاء الشائعة في التجميع الزمني داخل Pandas
يقع العديد من المطورين في أخطاء شائعة أثناء تنفيذ التجميع الزمني قد تؤدي إلى نتائج مضللة أو بطء شديد في المعالجة. من أبرز هذه الأخطاء تطبيق دوال التجميع المتكررة داخل حلقات تكرارية يدوية بدلاً من الاستفادة من المعالجة المتجهة المدمجة لكائن إعادة أخذ العينات، مما يتسبب في إهدار الموارد الحسابية وزيادة زمن التنفيذ لدرجات غير مقبولة في البيئات الإنتاجية.
من الأخطاء الحرجة أيضاً تجاهل التحقق من وجود طوابع زمنية غير صالحة أو مشوهة في الفهرس الزمني قبل التجميع؛ حيث يؤدي وجود قيم فارغة في الفهرس إلى حدوث استثناءات برمجية أو استبعاد صفوف صالحة دون قصد. يجب دائماً فحص الفهرس والتأكد من نقائه وتفرده وخلوه من الانقطاعات غير المفسرة قبل إطلاق العمليات الحسابية الشاملة.
يجب الحذر كذلك من تطبيق دوال تجميعية غير متوافقة مع طبيعة المتغير الرياضي؛ كحساب مجموع درجات الحرارة أو متوسط المعرفات الرقمية، والحرص على اختيار الدوال الإحصائية الملائمة لكل متغير لضمان موثوقية المخرجات وتوافقها مع المعايير العلمية والمحاسبية الدقيقة المعمول بها في المؤسسات الاحترافية.
12.3 بناء مسار معالجة بيانات متكامل وقابل لإعادة الاستخدام
لضمان استدامة الكود البرمجي وسهولة صيانته في المشروعات الكبيرة، يُوصى بتصميم دوال برمجية مغلفة ونمطية تستقبل إطارات البيانات الخام وتقوم بتنفيذ خطوات التنظيف، والتحويل الزمني، وإعادة التجميع لفترات الخمس دقائق، ومعالجة القيم الفارغة وفق معايير موحدة وموثقة مسبقاً، مما يتيح إعادة استخدام نفس المسار عبر مشاريع متعددة وبأقل قدر من التعديلات.
يتضمن المسار الاحترافي توثيقاً صريحاً لكافة المعاملات المختارة (مثل معاملات الإغلاق والتسمية وطرق ملء الفراغات)، بالإضافة إلى تضمين اختبارات جودة آلية للتأكد من أن الجدول المجمع يمتلك التردد الزمني المطلوب بدقة، وأن عدد الصفوف الناتج يطابق التوقعات الرياضية للنطاق الزمني المعالج، وخلو المخرجات من أي قيم غير معرفة غير مرغوب فيها.
يختتم المسار بتجهيز إطار البيانات المجمع بصيغ تصدير قياسية وعالية الكفاءة؛ مثل التصدير إلى تنسيق باركيه (Parquet) المضغوط والمفهرس عمودياً، مما يضمن سرعة استرجاع البيانات وتحميلها لاحقاً في أدوات ذكاء الأعمال، ولوحات المراقبة التفاعلية، ونماذج التعلم الآلي بأعلى درجات الكفاءة والأمان التشغيلي الممكنة في بيئات الإنتاج الحديثة.
الخاتمة
استعرضنا في هذا الدليل الأكاديمي الشامل الأسس النظرية والتطبيقية لكيفية التجميع وإعادة أخذ العينات حسب فترات مدتها خمس دقائق في مكتبة Pandas، مسلطين الضوء على البنية التحتية المتطورة التي توفرها لغة بايثون لمعالجة السلاسل الزمنية المعقدة. لقد تبين لنا أن التحويل الدقيق للأعمدة الزمنية، وتعيين الفهارس المخصصة، واختيار معاملات الإغلاق والتسمية المناسبة ليست مجرد تفاصيل تقنية ثانوية، بل هي محددات جوهرية ترسم دقة وموثوقية المؤشرات الإحصائية والقرارات المستخلصة من البيانات.
إن إتقان توظيف الدوال المتقدمة مثل دالة التجميع المخصص، وكائنات المجمعات الزمنية، وإدارة النطاقات الزمنية، والمفاضلة الواعية بين النوافذ الثابتة والنوافذ المتحركة يمنح مهندس البيانات وعالم البيانات القدرة على تحويل التدفقات البيانية الخام عالية الكثافة إلى رؤى استراتيجية واضحة وموجزة. يمثل هذا التوازن بين الاختزال الحسابي والحفاظ على الدقة الزمنية الركيزة الأساسية لتطوير النظم التحليلية المتقدمة والتطبيقات المالية والصناعية الذكية في عصر البيانات الكبيرة.
المراجع
- McKinney, W. (2022). Python for data analysis: Data wrangling with pandas, NumPy, and Jupyter (3rd ed.). O’Reilly Media. https://wesmckinney.com/book/
- The Pandas Development Team. (2024). pandas.DataFrame.resample — pandas documentation. PyData. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.resample.html
- The Pandas Development Team. (2024). Time series / date functionality — pandas documentation. PyData. https://pandas.pydata.org/docs/user_guide/timeseries.html
- Harris, C. R., Millman, K. J., van der Walt, S. J., Gommers, R., Virtanen, P., Cournapeau, D., … & Oliphant, T. E. (2020). Array programming with NumPy. Nature, 585(7825), 357–362. https://doi.org/10.1038/s41586-020-2649-2
- Box, G. E., Jenkins, G. M., Reinsel, G. C., & Ljung, G. M. (2015). Time series analysis: Forecasting and control (5th ed.). John Wiley & Sons. https://doi.org/10.1002/9781118619193
- VanderPlas, J. (2016). Python data science handbook: Essential tools for working with data. O’Reilly Media. https://jakevdp.github.io/PythonDataScienceHandbook/