كيفية مقارنة التواريخ في الباندا: مع الأمثلة


يمكنك استخدام الطرق التالية لمقارنة التواريخ بين عمودين في pandas DataFrame:

الطريقة الأولى: إضافة عمود جديد إلى DataFrame الذي يعرض مقارنة التاريخ

 df[' met_due_date '] = df[' comp_date '] < df[' due_date ']

يضيف هذا المثال تحديدًا عمودًا جديدًا يسمى met_due_date والذي يقوم بإرجاع True أو False اعتمادًا على ما إذا كان التاريخ الموجود في عمود comp_date يسبق التاريخ الموجود في عمود Due_date .

الطريقة الثانية: تصفية DataFrame بناءً على مقارنة التاريخ

 df_met_due_date = df[df[' comp_date '] < df[' due_date ']]

يقوم هذا المثال بالتحديد بتصفية DataFrame للاحتفاظ فقط بالصفوف التي يكون تاريخها في عمود comp_date أقدم من التاريخ الموجود في عمود Due_date .

توضح الأمثلة التالية كيفية استخدام كل من هذه الطرق عمليًا مع وحدات الباندا DataFrame التالية:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' task ': ['A', 'B', 'C', 'D'],
                   ' due_date ': ['4-15-2022', '5-19-2022', '6-14-2022', '10-24-2022'],
                   ' comp_date ': ['4-14-2022', '5-23-2022', '6-24-2022', '10-7-2022']})

#convert due_date and comp_date columns to datetime format
df[[' due_date ', ' comp_date ']] = df[[' due_date ', ' comp_date ']]. apply (pd. to_datetime )

#view DataFrame
print (df)

  task due_date comp_date
0 A 2022-04-15 2022-04-14
1 B 2022-05-19 2022-05-23
2 C 2022-06-14 2022-06-24
3 D 2022-10-24 2022-10-07

المثال 1: أضف عمودًا جديدًا إلى DataFrame الذي يعرض مقارنة التاريخ

يوضح التعليمة البرمجية التالية كيفية إضافة عمود جديد يسمى met_due_date الذي يقوم بإرجاع True أو False بناءً على ما إذا كان التاريخ الموجود في عمود comp_date يسبق التاريخ الموجود في العمود Due_date .

 import pandas as pd

#create new column that shows if completion date is before due date
df[' met_due_date '] = df[' comp_date '] < df[' due_date ']

#view updated DataFrame
print (df)

  task due_date comp_date met_due_date
0 A 2022-04-15 2022-04-14 True
1 B 2022-05-19 2022-05-23 False
2 C 2022-06-14 2022-06-24 False
3 D 2022-10-24 2022-10-07 True

بالنسبة لكل صف في DataFrame، يشير عمود met_due_date الجديد إلى ما إذا كان التاريخ الموجود في عمود comp_date يسبق التاريخ الموجود في عمود Due_date .

على سبيل المثال، يمكننا أن نرى أن المهمة أ كان لها تاريخ تسليم هو 15/04/2022 وتاريخ إكمالها هو 14/04/2022.

وبما أن تاريخ الإكمال كان قبل تاريخ الاستحقاق، فإن قيمة العمود met_due_date هي True.

المثال 2: قم بتصفية DataFrame بناءً على مقارنة التاريخ

يوضح التعليمة البرمجية التالية كيفية تصفية DataFrame ليحتوي فقط على الصفوف التي يكون تاريخها في العمود comp_date قبل التاريخ الموجود في العمود Due_date .

 import pandas as pd

#filter for rows where completion date is before due date
df_met_due_date = df[df[' comp_date '] < df[' due_date ']]

#view results
print (df_met_due_date)

  task due_date comp_date
0 A 2022-04-15 2022-04-14
3 D 2022-10-24 2022-10-07

تمت تصفية DataFrame الجديد ليحتوي فقط على الصفوف التي يكون تاريخها في العمود comp_date قبل التاريخ الموجود في العمود Due_date .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

كيفية إنشاء نطاق زمني في الباندا
كيفية تحويل الطابع الزمني إلى التاريخ/الوقت في Pandas
كيفية حساب الفرق بين تاريخين في الباندا

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *