اذهب إلى المحتوى

السؤال

نشر

قمت بإنشاء الكائنات datetime64  و  datetime.datetime و Timestamp كالتالي:

import datetime
import numpy as np
import pandas as pd

dt = datetime.datetime(2012, 5, 1)
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)

الآن كيف أقوم بالتحويل بين هذه الأنواع وبعضها البعض بإستخدام numpy؟

Recommended Posts

  • 1
نشر

استخدم numpy.datetime64 () للتحويل بين datetime.datetime و numpy.datetime64 كالتالي

date = datetime.datetime(2021,2021,26)

date64 = np.datetime64(date)

print(type(date64))

استخدم dt64.astype حيث dt64 عبارة عن numpy.datetime64 لتحويل dt64 إلى datetime.datetime كالتالي

date64 = np.datetime64("2020-26-06 12:00:00")

date = date64.astype(datetime.datetime)

print(type(date))

استخدم الطرح من 1 يناير 1970 للتحويل بين datetime.datetime و TIMESTAMP كالتالي

date = datetime.datetime(2021, 26, 6)
timeGap = (date - datetime.datetime(1970, 1, 1))
timestamp = timeGap.total_seconds()
print(timestamp)

 

  • 0
نشر

للتحويل من بايثون datatime الى datetime64 و Timestamp

>>> dt = datetime.datetime(year=2017, month=10, day=24, hour=4, 
                   minute=3, second=10, microsecond=7199)
>>> np.datetime64(dt)
numpy.datetime64('2017-10-24T04:03:10.007199')

>>> pd.Timestamp(dt) # أو pd.to_datetime(dt)
Timestamp('2017-10-24 04:03:10.007199')

للتحويل من numpy datetime64 الى datetime و Timestamp

>>> dt64 = np.datetime64('2017-10-24 05:34:20.123456')
>>> unix_epoch = np.datetime64(0, 's')
>>> one_second = np.timedelta64(1, 's')
>>> seconds_since_epoch = (dt64 - unix_epoch) / one_second
>>> seconds_since_epoch
1508823260.123456

>>> datetime.datetime.utcfromtimestamp(seconds_since_epoch)
>>> datetime.datetime(2017, 10, 24, 5, 34, 20, 123456)

تحويل الى Timestamp

>>> pd.Timestamp(dt64)
Timestamp('2017-10-24 05:34:20.123456')

تحويل من Timestamp الى datetime و datetime64

>>> ts = pd.Timestamp('2017-10-24 04:24:33.654321')

>>> ts.to_pydatetime()   # بايثون Datetime
datetime.datetime(2017, 10, 24, 4, 24, 33, 654321)

>>> ts.to_datetime64()
numpy.datetime64('2017-10-24T04:24:33.654321000')

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...