pandasで日時を表す文字列を時刻型に変換

前回の記事の予告通り、
pandasのto_datetime関数の紹介です。

pandas.to_datetime

非常に多くのデータ型や、フォーマットに対応していて柔軟に時刻データに変化してくれます。
ドキュメント中に書かれている引数:argの通り、Seriesでも一個の文字列でも大丈夫です。

Parameters:
arg : integer, float, string, datetime, list, tuple, 1-d array, Series
New in version 0.18.1: or DataFrame/dict-like

実際に使ってみましょう。


import pandas as pd
pd.to_datetime("2019/05/17 07:25:34")
# Timestamp('2019-05-17 07:25:34')

pd.to_datetime("2019-05-17 07:25:34.372245")
# Timestamp('2019-05-17 07:25:34.372245')

pd.to_datetime("2019 May 17  07:25:34.372245")
# Timestamp('2019-05-17 07:25:34.372245')

pd.to_datetime("17-05-19 07:25:34")
# Timestamp('2019-05-17 07:25:34')

上の例ではフォーマットを変えながら文字列を渡しましたが、いい感じに解釈してくれているのがわかります。
%Y-%m-%dとか指定しなくていいのでとても楽です。

これがあるので、自分はstrptimeはほぼ使っていません。

文字列を一つ渡せば、Timestampが戻り、Seriesを渡せばSeriesが帰ってきますが、
listを渡した時はlistではなく、DatetimeIndexが返されるのは注意です。

あとは、Timestamp型と、datetime型の違いがきになるところですが、
ほぼ互換性があると書いてあるので恐らく大丈夫でしょう。
(細かな違いもそのうち調べようとは思っていますが。)

参考: pandas.Timestamp

Timestamp is the pandas equivalent of python’s Datetime and is interchangeable with it in most cases. It’s the type used for the entries that make up a DatetimeIndex, and other timeseries oriented data structures in pandas.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です