Pandasのto_datetimeメソッド について、基礎から応用までを体系的に解説します。
目次
to_datetimeとは?
pandas.to_datetime は、文字列や数値、配列、Seriesなどを日時型(datetime64[ns])に変換するための関数です。
DataFrameを扱う際に「文字列として保存された日付」を「Pandasの日時型」に変換することで、以下のような操作が可能になります。
- 日付の抽出(年・月・日・曜日など)
- 日付の比較(範囲指定、フィルタリング)
- 時系列データのリサンプリング(週単位・月単位に集計)
- 時間差の計算(
timedelta)
主な引数
- arg
変換対象。文字列、リスト、NumPy配列、Seriesなど。 - errors(デフォルト:
'raise')
変換できない場合の挙動を指定'raise'→ エラーを出す'coerce'→ NaT(欠損値扱い)にする'ignore'→ 変換せずそのまま返す
- format
日付のフォーマットを指定(例:"%Y-%m-%d")。指定すると変換速度が向上。 - dayfirst
Trueにすると「日/月/年」形式で解釈(欧州式など)。 - utc
TrueにするとUTCのタイムゾーンに変換。 - unit
数値を日時に変換する単位を指定(例:"s"秒,"ms"ミリ秒,"ns"ナノ秒)。 - origin
数値を日付に変換する基準点。デフォルトは"unix"(1970-01-01)。
基本的な使い方
文字列を変換
import pandas as pd
pd.to_datetime("2025-09-13")
複数の日付(リストやSeries)
dates = ["2025-09-13"]
pd.to_datetime(dates)
変換できない値を含む場合
pd.to_datetime(["2025-09-13", "invalid"], errors="coerce")
フォーマット指定の活用
フォーマットを指定すると変換が高速かつ正確になります。
pd.to_datetime("13-09-2025", format="%d-%m-%Y")
フォーマット例(strftime記法)
%Y: 年(4桁)%m: 月(2桁)%d: 日(2桁)%H: 時(24時間)%M: 分%S: 秒
数値からの変換
Unix時間(エポック秒など)を日時に変換できます。
pd.to_datetime([1631548800, 1631635200], unit="s")
DataFrameでの利用
data = {"date": ["2025-09-13"]}
df = pd.DataFrame(data)
df["date"] = pd.to_datetime(df["date"])
print(df.dtypes)
# 出力:
# date datetime64[ns]
# dtype: object
まとめ
to_datetimeは文字列や数値を日時型に変換する必須関数。errors="coerce"を使うと変換できないデータを NaT にできる。formatを指定すれば高速で正確。- DataFrameで使うことで時系列解析が容易になる。
以上、PythonのPandasのto_datetimeメソッドについてでした。
最後までお読みいただき、ありがとうございました。
