كيفية تحويل الأعمدة إلى 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
كيفية تحويل السلاسل إلى تعويم في الباندا