كيفية تحويل الأعمدة إلى datetime في pandas


غالبًا ما قد تكون مهتمًا بتحويل واحد أو أكثر من أعمدة الباندا DataFrame إلى تنسيق DateTime. ولحسن الحظ، من السهل القيام بذلك باستخدام الدالة to_datetime() .

يوضح هذا البرنامج التعليمي عدة أمثلة لاستخدام هذه الوظيفة على DataFrame التالي:

 import numpy as np
import pandas as pd

#createDataFrame
df = pd.DataFrame({'event': ['A', 'B', 'C'],
                   'start_date': ['20150601', '20160201', '20170401'],
                   'end_date': ['20150608', '20160209', '20170416'] })

#view DataFrame
df

	event start_date end_date
0 A 20150601 20150608
1 B 20160201 20160209
2 C 20170401 201704161

#view column data types
df. dtypes

event object
start_date object
end_date object
dtype:object

المثال 1: تحويل عمود واحد إلى DateTime

يوضح التعليمة البرمجية التالية كيفية تحويل العمود “start_date” من سلسلة إلى تنسيق DateTime:

 #convert start_date to DateTime format
df['start_date'] = pd. to_datetime (df['start_date'])

#view DataFrame
df

        event start_date end_date
0 A 2015-06-01 20150608
1 B 2016-02-01 20160209
2 C 2017-04-01 20170416

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date object
dtype:object

لاحظ أن الدالة to_datetime()‎ ذكية ويمكنها عادةً استنتاج تنسيق التاريخ الصحيح المطلوب استخدامه، ولكن يمكنك أيضًا تحديد التنسيق الذي سيتم استخدامه مع وسيطة التنسيق :

 #convert start_date to DateTime format
df['start_date'] = pd. to_datetime (df['start_date'], format=' %Y%m%d ')

#view DataFrame
df

        event start_date end_date
0 A 2015-06-01 20150608
1 B 2016-02-01 20160209
2 C 2017-04-01 20170416

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date object
dtype:object

المثال 2: تحويل أعمدة متعددة إلى DateTime

يوضح التعليمة البرمجية التالية كيفية تحويل أعمدة “start_date” و”end_date” من السلاسل إلى تنسيقات DateTime:

 #convert start_date and end_date to DateTime formats
df[['start_date', 'end_date']] = df[['start_date', 'end_date']]. apply (pd. to_datetime )

#view DataFrame
df

	event start_date end_date
0 A 2015-06-01 2015-06-08
1 B 2016-02-01 2016-02-09
2 C 2017-04-01 2017-04-16

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date datetime64[ns]
dtype:object

المثال 3: تحويل الأعمدة إلى تنسيق DateTime بالثواني

في بعض الحالات، قد يكون لديك أيضًا أعمدة تتضمن تاريخًا بالإضافة إلى الساعات والدقائق والثواني، مثل DataFrame التالي:

 #createDataFrame
df = pd.DataFrame({'event': ['A', 'B', 'C'],
                   'start_date': ['20150601043000', '20160201054500', '20170401021215'],
                   'end_date': ['20150608', '20160209', '20170416'] })

#view DataFrame
df

        event start_date end_date
0 A 20150601043000 20150608
1 B 20160201054500 20160209
2 C 20170401021215 20170416

مرة أخرى، الدالة to_datetime()‎ ذكية ويمكنها عادة استنتاج التنسيق الصحيح للاستخدام دون أن نحدده:

 #convert start_date to DateTime format
df['start_date'] = pd. to_datetime (df['start_date'])

#view DataFrame
df

        event start_date end_date
0 A 2015-06-01 04:30:00 20150608
1 B 2016-02-01 05:45:00 20160209
2 C 2017-04-01 02:12:15 20170416

#view column date types
df. dtypes

event object
start_date datetime64[ns]
end_date object
dtype:object

بالطبع، من المحتمل أن تواجه مجموعة متنوعة من تنسيقات DateTime الغريبة، لذلك قد تحتاج إلى استخدام وسيطة التنسيق لإخبار Python بالضبط عن تنسيق DateTime الذي يجب استخدامه.

في هذه الحالات، قم بالرجوع إلى هذه الصفحة للحصول على قائمة كاملة بعوامل %DateTime التي يمكنك استخدامها لتحديد التنسيقات.

مصادر إضافية

كيفية تحويل DateTime إلى تاريخ في Pandas
كيفية تحويل السلاسل إلى تعويم في الباندا

Add a Comment

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