1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Pandas】.to_datetime()の使い方や注意点を説明します no.30

Last updated at Posted at 2021-04-04

見出しを追加 (70).png

こんにちは、まゆみです。

Pandas についての記事をシリーズで書いています。

今回は第30回目になります。

前々回から、Pandasの日付や時間に関するモジュールを扱って書いています。

今回の記事でも引き続き時間に関するモジュールを書いていきますね。

今回の記事では、『.to_datetime()』メソッドについて書いていきます

では、さっそく始めていきます

#.to_datetime()メソッド

前々回の記事では、『TimeStamp』について

前回の記事では『DatetimeIndex』について扱いましたが、

TimeStampは、ある1点の時間に関するデータ

DatetimeIndexは複数の時間に関するデータ(TimeStampが複数集まったもの)

なので、

TimeStamp を作る時は、文字列型データを

DatetimeIndexを作る時は、リスト型データを

それぞれ引数として渡しました。

.to_datetime()メソッドは、引数として渡すものによって、

上記に上げたようなPandasの時間に関するオブジェクトを作ってくれるメソッドになります。

言葉で説明するより、実際にコードを書いて結果を示した方が分かりやすいと思うので、さっそく書いていきます

##.to_datetime()メソッドに1つの値を引数として渡す

スクリーンショット 2021-04-04 090552.jpg

.to_datetime()メソッドに1つの値を渡すと、TimeStampオブジェクトが作られます。

引数として渡すものは、文字列でも、dateオブジェクトでも、datetimeオブジェクトでも構いません。

複数の値をリストにして渡す

.to_datetime()メソッドに複数の値を入れたリストを引数として渡すと、DatetimeIndexを返してくれます。

スクリーンショット 2021-04-04 091405.jpg

##Seriesを渡す

スクリーンショット 2021-04-04 094040.jpg
引用元:Pandasドキュメント

また、実際の場面では、Series を引数として渡すことも多いと思います。

Seriesを引数と渡すとどのように結果が返ってくるか見てみましょう

それぞれの値が色んなフォーマットで書かれたSeriesをtimesという変数に代入しました。

そのtimesというSeriesを.to_datetime()の引数として渡すと、全ての値をちゃんとフォーマットして返してくれます。

スクリーンショット 2021-04-04 094812.jpg

#.to_datetime()メソッドの弱点

.to_datetime()メソッドは、Pandasの時間に関するオブジェクトに変換してくれますが、では、『時間に変換しようが無いとき』はどうしたら良いのでしょうか?

例えば

"Hello!" という文字列は、年月日に変換できませんよね

また

2020/2/31

は存在しません

スクリーンショット 2021-04-04 095613.jpg

実際、データを分析しようとするときは、エラーを出す原因となっている部分は取り除いたり何かしらの処理を施さなければいけません。

上記のスクショのように、エラーが出てしまってはそこからのプロセスを進めることができません。

##.to_datetime()のパラメーター errors
名称未設定のデザイン (8).png

そこで、エラーを出さずに、エラーの原因となっているところを目で分かるようにします。

スクリーンショット 2021-04-04 100228.jpg
引用元:Pandasドキュメント
エラーで画面が真っ赤になるのではなく、エラーの原因となっている『Hello』や『2000/2/30』を『NaT』と表示してくれるので、のちの処理がしやすくなります

.to_datetime()のパラメーターerrorsの引数を『coerce』(ちなみにcoerceは強制という意味の英語です。)にしてみます。
スクリーンショット 2021-04-04 100748.jpg

#UNIXタイムも.to_datetime()で変換できる?

UNIX時間とは

1970年1月1日の真夜中0時からの経過秒数によって、時間を表す方法です。

※興味のある方はwikipediaで詳しく読んでみてくださいね。

では、このようなUNIX時間もPandasの.to_datetime()で変換する事ができるでしょうか?

見出しを追加 (69).png
スクリーンショット 2021-04-04 102758.jpg

ちなみに引数の"s" はsecond(秒)のsです

#まとめ
では今回の.to_datetime()についての記事を締めくくらせていただきます。

次回は、.date_range()という時の期間を指定するメソッドを紹介していきますね。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?