PythonのPandasで年データのない文字列のto_datetime変換方法

この記事は約1分で読めます。
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を噛ませるとうまくいきます。

この例だと実行時の年を取得して付け足しています。

タイトルとURLをコピーしました