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

التحويل بين الأنواع datetime64 و datetime.datetime و Timestamp في numpy

Fahmy Mostafa

السؤال

قمت بإنشاء الكائنات 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...