NumPy Datetime64 を Datetime.Datetime または Timestamp に変換する
- 問題
-
datetime.datetimeをnp.datetime64およびpd.Timestampに変換する -
np.datetime64をdatetime.datetimeとpd.Timestampに変換する -
Timestampをdatetimeおよびdatetime64に変換する
この記事は、numPy.datetim64、datetime.datetime、および Timestamp の間でデータを変換する方法を示すことを目的としています。
問題
順序付けされているかどうかに関係なく、データを処理するときに、日付と時刻が発生することはかなり一般的です。 状況に応じて、処理されたデータが望ましい形式であることを確認するために、適切な方法で時刻と日付を処理する必要があります。
コード例:
import datetime
import numpy as np
import pandas as pd
dt = datetime.datetime(2022, 5, 21)
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)
上記のコードでは、datetime、numpy、および pandas という名前の 3つのモジュールをインポートしており、それぞれが日付を保存および処理するための実装を提供しています (それぞれに独自のユース ケースがあります)。
datetime.datetime() を使用して、datetime インスタンスを作成し、dt という名前の変数に格納します。 pandas に関しては、メソッド pd.DatetimeIndex() を使用しました。これは n 個の datetime64 インスタンスを格納する不変配列を作成し、配列の最初のメンバーにアクセスすると Timestamp インスタンスを返します。
pandas モジュールでは、datetime64() メソッドを使用して datetime インスタンスを変換し、dt64 という名前の変数に格納します。
datetime を Timestamp および datetime64 インスタンスに変換するのは簡単です。 この記事では、np.datetime64 を datetime および Timestamp インスタンスに変換する方法について説明します。
datetime.datetime を np.datetime64 および pd.Timestamp に変換する
コード例:
import datetime
import numpy as np
import pandas as pd
dt = datetime.datetime(
year=2018, month=10, day=24, hour=4, minute=3, second=10, microsecond=7199
)
# convert datetime.datetime to np.datetim364
print(np.datetime64(dt))
# datetime.datetime to pd.Timestamp
print(pd.Timestamp(dt))
出力:
2018-10-24T04:03:10.007199
2018-10-24 04:03:10.007199
日時を変換します。 変換される datetime64およびTimestampのコンストラクターにdatetime インスタンスを渡すことにより、datetime を datetime64 および Timestamp に変換します。
np.datetime64 を datetime.datetime と pd.Timestamp に変換する
コード例:
import datetime
import numpy as np
import pandas as pd
# np.datetime64 to datetime.datetime
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
print(datetime.datetime.utcfromtimestamp(seconds_since_epoch))
# np.datetime64 to Timestamp
print(pd.Timestamp(dt64))
出力:
2017-10-24 05:34:20.123456
2017-10-24 05:34:20.123456
np.datetime64 から datetime.datetime に変換するには、まず datetime64 データを秒 (エポック形式) に変換する必要があります。 変換後、秒は utcfromtimestamp という名前の datetime メソッドに渡されます。このメソッドはエポック時間を読み取り、datetime のインスタンスに変換します。
np.datetime64 から Timestamp については比較的単純で、np.datetime64 インスタンスを Timestamp コンストラクターに渡すだけです。
Timestamp を datetime および datetime64 に変換する
コード例:
import datetime
import numpy as np
import pandas as pd
ts = pd.Timestamp("2017-10-24 04:24:33.654321")
# Timestamp to datetime.datetime
print(ts.to_pydatetime())
# Timestamp to np.datetime64
print(ts.to_datetime64())
出力:
2017-10-24 04:24:33.654321
2017-10-24T04:24:33.654321000
これらの関数の助けを借りて、Timestamp を datetime と datetime64 に 1 回のメソッド呼び出しで簡単に変換できます。 Timestamp から datetime.datetime に変換するには、to_pydatetime() メソッドを使用します。Timestamp インスタンスを datetime. 日時インスタンス。
Timestamp から datetime への変換には、to_datetime64() メソッドを使用します。 Timestamp インスタンスを np.datetime64 インスタンスに変換します。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn