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メソッドについてでした。
最後までお読みいただき、ありがとうございました。