احسب الفرق بين التواريخ حسب شرط محدد باستخدام بايثون
تعتبر عملية مقارنة التواريخ أحد المهام المشتركة في مجال تحليل البيانات، حيث يستخدم المطورون أدوات متعددة لمعرفة الفروق بين التواريخ بناءً على شروط معينة. في هذا المقال، سنستعرض كيفية استخدام لغة البرمجة بايثون لإيجاد الفروق بين التواريخ مع الأخذ بعين الاعتبار بعض الشروط.
أهمية معرفة الفروق بين التواريخ
تعد معرفة الفروق بين التواريخ أمرًا حيويًا في العديد من المجالات، بما في ذلك تحليل الأعمال، والإحصاءات، وإدارة المشاريع. فعلى سبيل المثال، يمكن للشركات استخدام هذه المعلومات لتتبع أداء المنتجات، أو حساب مدة الحملات التسويقية، أو تقييم كفاءة العمليات. ولذلك، تعد تقنيات البرمجة بلغة بايثون من الأدوات الموجودة في ترسانة المحللين والمطورين.
كيفية استخدام بايثون لمقارنة القيم بين الصفوف
يمكن استخدام مكتبات متقدمة في بايثون مثل Polars لتمكين المستخدمين من إجراء هذه المقارنات بسهولة. من خلال استخدام دالة shift()
، يمكننا مقارنة القيم في الصف الحالي مع الصف السابق لمعرفة إذا كان هناك تغيير في قيمة معينة. مثال على ذلك هو استخدام تتبع تغييرات المعرفات في مجموعة بيانات:
import polars as pl
df = pl.DataFrame({"id": ["D", "D", "D", "A", "A", "D", "A"]}).with_row_index()
df = df.with_columns(
id_change = pl.col("id") != pl.col("id").shift(),
previous_index = pl.when(pl.col("id") != pl.col("id").shift())
.then(pl.col("index").shift())
)
نتيجة هذه العمليات ستظهر الفروق في المعرفات وتاريخ الصفوف، مما يسهل عملية التحليل.
ملء الفجوات في البيانات
قد توجد حالات حيث تكون هناك فجوات في البيانات، وهذا قد يؤثر على التحليل. يمكن استخدام خاصية forward_fill
لملء هذه الفجوات تلقائيًا، وذلك عن طريق استخدام الدوال المناسبة إلى جانب مجمعات بيانات أخرى:
filled_df = df.with_columns(
pl.col("index").shift().over("id").alias("previous_same"),
pl.when(pl.col("id") != pl.col("id").shift())
.then(pl.col("index").shift())
.forward_fill()
.alias("previous_different")
)
هذا الكود سيمكننا من الحصول على بيانات كاملة مقارنةً مع الصفوف السابقة والمختلفة.
تطبيق المثال على البيانات الفعلية
لنأخذ مثالًا أكثر تعقيدًا يتضمن تواريخ فعلية وإجراء حسابات عليها. لنفترض أن لدينا بيانات المعاملات مع التواريخ، ونرغب في حساب الفرق بين هذه التواريخ وفقًا لشروط معينة:
result_df = df.with_columns(
pl.col("TRANDATE").diff().over("ACQDISP").alias("same"),
(pl.col("TRANDATE") - pl.when(pl.col("ACQDISP") != pl.col("ACQDISP").shift())
.then(pl.col("TRANDATE").shift())
.forward_fill()).alias("مختلف")
)
هذا الكود سيجمع لنا معلومات دقيقة حول الفرق بين تواريخ المعاملات في فئات مختلفة، مما يسهل تحليل البيانات المالية أو التجارية.
الختام
من الواضح أن استخدام بايثون لإيجاد الفروق بين التواريخ وفقًا لشروط معينة هو أمر ضروري لمحللي البيانات. فبواسطة مكتبة مثل Polars، يمكننا الوصول إلى أدوات قوية لتحليل البيانات بشكل أكثر كفاءة. تعتبر هذه الطريقة وسيلة فعّالة لمقارنة القيم عبر الصفوف، وتعبئة الفجوات في البيانات، وتطبيق الشروط المختلفة لتحسين جودة تحليل البيانات.
باختصار، إن فهم كيفية استخدام بايثون لإيجاد الفروق بين التواريخ هو بوضوح مهارة قيمة يجب أن يمتلكها أي محلل بيانات. استمروا في استكشاف هذه المفاهيم واستخدامها في مشاريعكم لتحسين مهاراتكم وبناء حلول مبتكرة.