Mohamed Elnemr نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 لدي بيانات تحتوى على التاريخ كالتالي: import pandas as pd data = {'start_date': [pd.Timestamp('2021-01-24 13:03:12.050000'), pd.Timestamp('2021-01-27 11:57:18.240000'), pd.Timestamp('2021-01-23 10:07:47.660000')], 'end_date': [pd.Timestamp('2021-01-26 23:41:21.870000'), pd.Timestamp('2021-01-27 15:38:22.540000'), pd.Timestamp('2021-01-23 18:50:41.420000')]} df = pd.DataFrame(data) قمت بعمل عمود لحساب الفرق بين تاريخين كالتالي: df['diff'] = df['end_date'] - df['start_date'] لكنة يظهر لي خانة تدعى "days" عندما يكون الفرق بين التاريخين أكبر من 24 ساعة: start_date end_ date diff 0 2021-01-24 13:03:12.050 2021-01-26 23:41:21.870 2 days 10:38:09.820000 1 2021-01-27 11:57:18.240 2021-01-27 15:38:22.540 0 days 03:41:04.300000 2 2021-01-23 10:07:47.660 2021-01-23 18:50:41.420 0 days 08:42:53.760000 كيف يمكنني حساب الفرق بين الأيام دون ظهور العمود days، بحيث يكون الفرق فقط في شكل ساعات ودقائق؟ 1 اقتباس
0 Ahmed Sharshar نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 يمكنك استخدام as_type لتغيير شكل الخرج "الفرق" للشكل الذي تريده ببساطة كالتالي: import pandas df = pandas.DataFrame(columns=['start_date','end_date','ans']) df.start_date = [pandas.Timestamp('2021-01-24 13:03:12.050000'), pandas.Timestamp('2021-01-27 11:57:18.240000'), pandas.Timestamp('2021-01-23 10:07:47.660000')] df.end_date = [pandas.Timestamp('2021-01-26 23:41:21.870000'), pandas.Timestamp('2021-01-27 15:38:22.540000'), pandas.Timestamp('2021-01-23 18:50:41.420000')] (df.end_date-df.start_date).astype('timedelta64[h]') وتكون الإجابة على الشكل التالي: 0 58 1 3 2 8 dtype: float64 لاحظ أنه لا وجود للعمود days وانما تم تحويلها الى ساعات. اقتباس
0 Ali Haidar Ahmad نشر 8 سبتمبر 2021 أرسل تقرير نشر 8 سبتمبر 2021 (معدل) حل آخر: t1 = pd.to_datetime('1/1/2015 01:00') t2 = pd.to_datetime('1/1/2015 03:30') # إذا كنت تريد الساعات h=pd.Timedelta(t2 - t1).seconds / 3600.0 # إذا كنت تريد الدقائق m=pd.Timedelta(t2 - t1).seconds / 60.0 تم التعديل في 8 سبتمبر 2021 بواسطة Ali Haidar Ahmad اقتباس
السؤال
Mohamed Elnemr
لدي بيانات تحتوى على التاريخ كالتالي:
import pandas as pd data = {'start_date': [pd.Timestamp('2021-01-24 13:03:12.050000'), pd.Timestamp('2021-01-27 11:57:18.240000'), pd.Timestamp('2021-01-23 10:07:47.660000')], 'end_date': [pd.Timestamp('2021-01-26 23:41:21.870000'), pd.Timestamp('2021-01-27 15:38:22.540000'), pd.Timestamp('2021-01-23 18:50:41.420000')]} df = pd.DataFrame(data)
قمت بعمل عمود لحساب الفرق بين تاريخين كالتالي:
لكنة يظهر لي خانة تدعى "days" عندما يكون الفرق بين التاريخين أكبر من 24 ساعة:
start_date end_ date diff 0 2021-01-24 13:03:12.050 2021-01-26 23:41:21.870 2 days 10:38:09.820000 1 2021-01-27 11:57:18.240 2021-01-27 15:38:22.540 0 days 03:41:04.300000 2 2021-01-23 10:07:47.660 2021-01-23 18:50:41.420 0 days 08:42:53.760000
كيف يمكنني حساب الفرق بين الأيام دون ظهور العمود days، بحيث يكون الفرق فقط في شكل ساعات ودقائق؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.