كيفية تحديد التنسيق في pandas.to_datetime


يمكنك استخدام الدالة pandas.to_datetime() لتحويل عمود سلسلة إلى عمود تاريخ ووقت في pandas DataFrame.

عند استخدام هذه الوظيفة، يمكنك استخدام وسيطة التنسيق لتحديد التنسيق الذي يوجد به التاريخ الخاص بك لتجنب الأخطاء عند تحويله من سلسلة إلى وقت التاريخ.

تستخدم هذه الوظيفة بناء الجملة الأساسي التالي:

 df[' datetime '] = pd. to_datetime (df[' my_date_column '], format=' %m%d%Y %H:%M:%S '])

فيما يلي التوجيهات الأكثر شيوعًا التي يمكنك تقديمها إلى وسيطة التنسيق :

  • %m : الشهر كرقم بصفر (01، 02، … 12)
  • %d : يوم الشهر كرقم بصفر (01، 02، … 31)
  • %y : السنة مع القرن كرقم (2020، 2021، 2022، إلخ.)
  • %H : الساعة (نظام 24 ساعة) كرقم مبطن بالأصفار (00، 01، … 23)
  • %I : الوقت (ساعة 12 ساعة) كرقم مبطن بالأصفار (01، 02، … 12)
  • %p : إما صباحًا أو مساءً
  • %M : الدقيقة على شكل رقم مكتمل بالأصفار (00، 01، … 59)
  • %S : الثانية على شكل رقم مكتمل بالأصفار (00، 01، … 59)

للحصول على قائمة كاملة من الإرشادات، راجع هذه الصفحة .

يوضح المثال التالي كيفية استخدام وسيطة التنسيق في الدالة to_datetime() في سيناريوهات مختلفة.

مثال: حدد التنسيق في pandas.to_datetime

لنفترض أن لدينا DataFrame الباندا التالية التي تحتوي على معلومات حول إجمالي المبيعات التي تمت في تواريخ مختلفة في متجر بيع بالتجزئة:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' date ': ['10012023 4:15:30', '10042023 7:16:04', '10062023 9:25:00',
                            '10142023 15:30:50', '10152023 18:15:00'],
                   ' sales ': [100, 140, 235, 120, 250]})

#view DataFrame
print (df)

                dirty dates
0 10012023 4:15:30 100
1 10042023 7:16:04 140
2 10062023 9:25:00 235
3 10142023 15:30:50 120
4 10152023 18:15:00 250

#view data type of each column in DataFrame
print ( df.dtypes )

date object
dirty int64
dtype:object

يمكننا أن نرى أن عمود التاريخ هو حاليًا عمود سلسلة (أي كائن).

لنفترض أننا نحاول استخدام pandas.to_datetime() لتحويل هذا العمود إلى التاريخ والوقت:

 #attempt to convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '])

ParserError: month must be in 1..12: 10012023 4:15:30 present at position 0

نتلقى خطأ لأن الدالة pandas.to_datetime() لا تتعرف على تنسيق التاريخ والوقت الموجود في عمود التاريخ حاليًا.

يمكننا أيضًا استخدام وسيطة التنسيق لتحديد تنسيق العمود:

 #convert date column to datetime format
df[' date '] = pd. to_datetime (df[' date '], format=' %m%d%Y %H:%M:%S ')

#view DataFrame
print (df)

                 dirty dates
0 2023-10-01 04:15:30 100
1 2023-10-04 07:16:04 140
2 2023-10-06 09:25:00 235
3 2023-10-14 15:30:50 120
4 2023-10-15 18:15:00 250

#view updated type of each column
print ( df.dtypes )

date datetime64[ns]
dirty int64
dtype:object

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

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة pandas to_datetime() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

كيفية إنشاء نطاق زمني في الباندا
كيفية تحويل الطابع الزمني إلى التاريخ/الوقت في Pandas
كيفية حساب الفرق بين تاريخين في الباندا

Add a Comment

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