كيفية تحويل timedelta إلى int في pandas (مع أمثلة)
يمكنك استخدام الطرق التالية لتحويل عمود timedelta إلى عمود عدد صحيح في pandas DataFrame:
الطريقة الأولى: تحويل Timedelta إلى عدد صحيح (أيام)
df[' days '] = df[' timedelta_column ']. dt . days
الطريقة الثانية: تحويل Timedelta إلى عدد صحيح (ساعات)
df[' hours '] = df[' timedelta_column '] / pd. Timedelta (hours= 1 )
الطريقة الثالثة: تحويل Timedelta إلى عدد صحيح (بالدقائق)
df[' minutes '] = df[' timedelta_column '] / pd. Timedelta (minutes= 1 )
يوضح المثال التالي كيفية استخدام كل طريقة عمليًا مع الباندا DataFrame التالية:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' promotion ': ['A', 'B', 'C', 'D'],
' start ': ['2021-10-04 13:29:00', '2021-10-07 12:30:00',
'2021-10-15 04:20:00', '2021-10-18 15:45:03'],
' end ': ['2021-10-08 11:29:06', '2021-10-15 10:30:07',
'2021-10-29 05:50:15', '2021-10-22 15:40:03']})
#convert start date and end date columns to datetime
df[' start '] = pd. to_datetime (df[' start '])
df[' end '] = pd. to_datetime (df[' end '])
#create new column that contains time delta between start and end
df[' duration '] = df[' end '] - df[' start ']
#view DataFrame
print (df)
promotion start end duration
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00
مثال 1: تحويل Timedelta إلى عدد صحيح (أيام)
يوضح التعليمة البرمجية التالية كيفية إنشاء عمود جديد يسمى الأيام الذي يحول دلتا الوقت في عمود المدة إلى قيمة عددية تمثل عدد الأيام في عمود دلتا الوقت.
#create new column that converts timedelta into integer number of days
df[' days '] = df[' duration ']. dt . days
#view updated DataFrame
print (df)
promotion start end duration days
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06 3
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07 7
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15 14
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00 3
يمكننا استخدام dtype للتحقق من نوع بيانات هذا العمود الجديد:
#check data type
df. days . dtype
dtype('int64')
العمود الجديد هو عدد صحيح.
المثال 2: تحويل Timedelta إلى عدد صحيح (ساعات)
يوضح التعليمة البرمجية التالية كيفية إنشاء عمود جديد يسمى الساعات الذي يحول دلتا الوقت في عمود المدة إلى قيمة رقمية تمثل إجمالي عدد الساعات في عمود دلتا الوقت.
#create new column that converts timedelta into total number of hours
df[' hours '] = df[' duration '] / pd. Timedelta (hours= 1 )
#view updated DataFrame
print (df)
promotion start end duration hours
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06 94.001667
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07 190.001944
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15 337.504167
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00 95.916667
يمكننا استخدام dtype للتحقق من نوع بيانات هذا العمود الجديد:
#check data type
df. hours . dtype
dtype('float64')
العمود الجديد عائم.
المثال 3: تحويل Timedelta إلى عدد صحيح (بالدقائق)
يوضح التعليمة البرمجية التالية كيفية إنشاء عمود جديد يسمى الدقائق الذي يحول دلتا الوقت في عمود المدة إلى قيمة رقمية تمثل إجمالي عدد الدقائق في عمود دلتا الوقت.
#create new column that converts timedelta into total number of minutes
df[' minutes '] = df[' duration '] / pd. Timedelta (minutes= 1 )
#view updated DataFrame
print (df)
promotion start end duration minutes
0 A 2021-10-04 13:29:00 2021-10-08 11:29:06 3 days 22:00:06 5640.100000
1 B 2021-10-07 12:30:00 2021-10-15 10:30:07 7 days 22:00:07 11400.116667
2 C 2021-10-15 04:20:00 2021-10-29 05:50:15 14 days 01:30:15 20250.250000
3 D 2021-10-18 15:45:03 2021-10-22 15:40:03 3 days 23:55:00 5755.000000
يمكننا استخدام dtype للتحقق من نوع بيانات هذا العمود الجديد:
#check datatype
df. minutes . dtype
dtype('float64')
العمود الجديد عائم.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
كيفية تحويل الأعمدة إلى DateTime في Pandas
كيفية تحويل DateTime إلى تاريخ في Pandas
كيفية استخراج الشهر من التاريخ في الباندا