概要
これってどういう時必要なのか、というと、以下のような時。
python
import numpy as np
from datetime import timedelta
np_today: np.datetime64 = np.datetime64("2023-08-24")
np_tomorrow: np.datetime64 = np_today + timedelta(days=1)
# NOTE: この時、以下のようなエラーが発生する
numpy.core._exceptions._UFuncBinaryResolutionError: ufunc 'add' cannot use operands with types dtype('<M8[ns]') and dtype('O')
1日足したいだけなのに。
調べたこと
調査中、頑張ってる人たちを見かけたけど、
結論
pd.Timestamp
だけで OK。
python
import numpy as np
import pandas as pd
from datetime import timedelta
np_today: np.datetime64 = np.datetime64("2023-08-24")
# pd.Timestamp() で変換してあげると、 timedelta を加算できる
np_tomorrow: pd.Timestamp = pd.Timestamp(np_today) + timedelta(days=1)
np_tomorrow
>>> Timestamp('2023-08-25 00:00:00')
参考にした記事
結局 stackoverflow が強い。
また、以下の記事によると、 pd.Timestamp
は datetime.datetime
型を継承しているようです。
つまり、 datetime.datetime
型で使えるメソッドは、 pd.Timestamp
からも呼び出せると言えるのかなと思います。
ただし、以下の公式サイトを見ても、そのような記述は見つけられなかったので、実際に動作確認して使ってくださいね。