pandasのデータフレーム内で”09/02 03:26″のように年データが入っていない文字列をdatetime64[ns]に変換する方法を紹介します。
結論
年情報をapply
メソッドで付け足して、pd.to_datetime
で型変換するとできます。
説明
金融機関と更新日を持つデータフレームを例にします。
更新日は日付フォーマット(mm/dd HH/MM)でかかれていますが、object
型です。
素直にdf["更新日"] = pd.to_datetime(df["更新日"], format="%m/%d %H:%M")
とすると、datetime64[ns]型に変換はできますが、1900年になってしまいます。
これを回避するためにはdf["更新日"].apply(lambda x: f"{datetime.date.today().year}/{x}")
として、apply
メソッドでもとの文字列に対して年とスラッシュを付け足してからto_datetime
を噛ませるとうまくいきます。
この例だと実行時の年を取得して付け足しています。