Pythonと本と子供と雑談と

いつからはじめても遅くない

Pythonのdatetimeについて

f:id:mazarimono:20190528135659j:plain
Photo by Anni Roenkae from Pexels

さて、Pythonで日付や時間を扱うときはdatetimeで触ります。でもこれ、なんか使い方が面倒なんですよね。

日付くらい簡単やろがと思い、色々と便利にできるものがないかなぁと思って色々探してみたり・・・

f:id:mazarimono:20190528133354p:plain

しかし、ないのでdatetimeを使って生きて行けということです。なんか自分で色々できるんじゃないかと思って調べたけど、単純に日付を扱っているわけでないからちょっとややこしい感じでした。まぁ、そんな私ごときが3日くらい考えてよいものができるのだったら、もっと使いやすいものが標準ライブラリとしてマウントされてるわ!!!ってことですね。はい。

これの続編です。 

www.mazarimono.net

parse_dates=Trueを忘れずに

とりあえずいえることは、pandasで日付を扱うファイルを読み込むときにparse_dates=Trueにすることを忘れるなってことです。それを忘れると、色々自分で加工したりしないといけなくなり、大変になります。

これをつけておくと、ちゃんとdatetimeにしてくれます。pandasとかはdatetimeになっていた方が扱いやすいし、そうしておくべきです。データフレームに日付が出てるけど、データがdatetimeになっているか分からない場合は、type()で確認しましょう。

pandas.pydata.org

datetimeは0時から23時までです

最近触っていたデータに1時から24時までを使って、時間を表していたデータがありました。

実際どれかというと、下に示した福岡県の大気データです。このデータは大気のデータを1時間ごとに表示してくれててめちゃ良いから、文句はないです。しかし1から24時で時間を表示していたんですよね~。それを何も考えずにdatetimeに突っ込んだら、表題のエラーをいただきました。

ま、こんなもんは24時を0時に直して、日付を一日進めればよいだけなんで楽なものですよ。ほほほ。

というわけで、前処理も色々あるよねーって感じです。

以前は、そのまま使わせんかいって感じでしたが、最近はそう来たか!って思うようになって、私も世間のことが結構わかってきたみたいです。

date()とtime()

さて、datetimeで日付と時間を作ったら、それをどうやって分けるのかということが気になります。両方が表記されているものと、日付と時間をばらしたものがあった方が案外使い勝手が良かったりして。それを分けてくれるのが上のやつらです。

例えば

dt = datetime.datetime(2019, 05, 28, 1, 0)

dt.date() 
datetime.date(2019, 05, 28)

dt.time()
datetime.time(1, 0)

ってな感じできれいに分けてくれます。案外便利です。

まとめ

そのほかtimedelta()とか色々あるんですが、まず読み込んだデータをちゃんと使えるようにしたいのであれば、上の3つくらいを使えば、使えるようになると思います。というわけでお疲れさまでした。

しかしPythonの本多いですねぇ。

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで