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