الباندا: كيفية حساب الفرق بين الوقتين
يمكنك استخدام بناء الجملة التالي لحساب الفرق بين مرتين في DataFrame الباندا:
#calculate time difference in hours df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 ) #calculate time difference in minutes df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 ) #calculate time difference in seconds df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 )
يحسب هذا المثال المحدد الفرق بين الأوقات في أعمدة end_time و start_time لبعض Pandas DataFrame.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: حساب الفرق بين مرتين في الباندا
لنفترض أن لدينا DataFrame الباندا التالية:
import pandas as pd #createDataFrame df=pd. DataFrame ({' start_time ':pd. date_range (start=' 5/25/2020 ', periods= 6 , freq=' 15min '), ' end_time ':pd. date_range (start=' 5/26/2020 ', periods= 6 , freq=' 30min ')}) #view DataFrame print (df) start_time end_time 0 2020-05-25 00:00:00 2020-05-26 00:00:00 1 2020-05-25 00:15:00 2020-05-26 00:30:00 2 2020-05-25 00:30:00 2020-05-26 01:00:00 3 2020-05-25 00:45:00 2020-05-26 01:30:00 4 2020-05-25 01:00:00 2020-05-26 02:00:00 5 2020-05-25 01:15:00 2020-05-26 02:30:00
يمكننا استخدام الصيغة التالية لحساب الفارق الزمني بين أعمدة start_time و end_time من حيث الساعات والدقائق والثواني:
#calculate time difference in hours df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 ) #calculate time difference in minutes df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 ) #calculate time difference in seconds df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 ) #view updated DataFrame print (df) start_time end_time hours_diff min_diff sec_diff 0 2020-05-25 00:00:00 2020-05-26 00:00:00 24.00 1440.0 86400.0 1 2020-05-25 00:15:00 2020-05-26 00:30:00 24.25 1455.0 87300.0 2 2020-05-25 00:30:00 2020-05-26 01:00:00 24.50 1470.0 88200.0 3 2020-05-25 00:45:00 2020-05-26 01:30:00 24.75 1485.0 89100.0 4 2020-05-25 01:00:00 2020-05-26 02:00:00 25.00 1500.0 90000.0 5 2020-05-25 01:15:00 2020-05-26 02:30:00 25.25 1515.0 90900.0
تحتوي الأعمدة الجديدة على فروق الوقت بين أعمدة start_time و end_time بوحدات مختلفة.
على سبيل المثال، النظر في السطر الأول:
- الفرق بين وقت البدء ووقت الانتهاء هو 24 ساعة .
- الفرق بين وقت البدء ووقت الانتهاء هو 1440 دقيقة .
- الفرق بين وقت البدء ووقت الانتهاء هو 86400 ثانية .
لاحظ أنه في هذا المثال، تم تنسيق عمودي start_time و end_time بالفعل كتاريخ ووقت.
إذا كانت أعمدة الوقت الخاصة بك منسقة حاليًا كسلاسل، فيمكنك استخدام pd.to_datetime لتحويل كل عمود أولاً إلى تنسيق التاريخ والوقت قبل حساب الفرق بين الأوقات:
#convert columns to datetime format
df[[' start_time ', ' end_time ']] = df[[' start_time ', ' end_time ]]. apply (pd. to_datetime )
يمكنك بعد ذلك المتابعة لحساب فروق الوقت بين الأعمدة حيث أنهما الآن بتنسيق التاريخ والوقت الذي يمكن للباندا التعرف عليه.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
كيفية إنشاء نطاق زمني في الباندا
كيفية استخراج الشهر من التاريخ في الباندا
كيفية تحويل الطابع الزمني إلى التاريخ/الوقت في Pandas