文字列型やobject型として読み込まれてしまっている特定列を、Datetime型に変換するには、Pandasのto_datetime関数を使おう。
import pandas as pd df["measurement_ts"] = pd.to_datetime(df["measurement_ts"])
タイムゾーンを削除したり、日時や曜日を抽出する場合は、Seriesのdtアクセサを使うのが簡単だ。
# タイムゾーンの削除 df["measurement_ts"] = pd.to_datetime(df["measurement_ts"]).dt.tz_localize(None) df["hour"] = df["measurement_ts"].dt.hour # 時間の抽出 df["day"] = df["measurement_ts"].dt.dayofweek # 曜日の抽出 df["date"] = df["measurement_ts"].dt.date # 日付の抽出
ちなみに、.dt.dayofweekでは、月曜日が0、火曜日が1、…、日曜日が6となる整数が返ってくる。
ここで、.dt.dateの返り値はdatetime64[ns]ではなく、object型だ。Datetime型に変換しておくのが良いだろう。
df["date"] = pd.to_datetime(df["date"])
0 コメント