( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】日付の差分を算出する方法|datetime

日付の差分を算出するとは?

今回はPythonで特定の日付の差分を算出する方法をご紹介します

2つの日付型のデータ(2020/1/1など)の差分を出すことで、日数差を抽出できます

Pythonの日付データの差分イメージ

また特定の日付に対して、プラス1か月のように固定の時間・日にちを追加することができます

datetimeモジュール

日付型のデータの処理はdatetimeを活用します

今回利用するモジュールにはいくつかのデータ型が存在しています

日時(日付と時刻)を表すdatetime型と、日付のみを表すdate型の2つが存在します

それらのデータを引き算したときに算出される差分はtimedelta型となります

Pythonの日付データのデータ型の違い

事前準備

datetimepandasをインポートします

本サイトからの東京の気温推移データを取得します

日付データへの変換は下記記事をご覧ください

import datetime
import pandas as pd
df = pd.read_html('https://smart-hint.com/tokyo-temperature/')[0]
df['日付'] = pd.to_datetime(df['日付'])
東京都の平均気温のサンプルデータ
【Python】日付型へフォーマット変換する方法|to_datetime

1年の中で平均気温が一番高い日(暑い)date_maxと、一番低い日(寒い)date_minの2日を算出しておきます

max = df['平均気温'].max()
date_max = df.query('平均気温==@max').iat[0,0]
print(date_max)
min = df['平均気温'].min()
date_min = df.query('平均気温==@min').iat[0,0]
print(date_min)
Pythonの日付データの気温

日付の差分を算出する

それでは2つの日付(暑い日と寒い日)の差分を算出しましょう

単純に引き算をすればtimedelta型で算出されます(**)

date_max - date_min
Pythonの日付データの差分

timedelta型に対してdaysを利用することで数値として取り出すことができます

date_dif = date_max - date_min
print(date_dif)
print(date_dif.days)
Pythonの日付データの差分を数値に変換
MEMO

日時(日付と時刻)を表すdatetime型と、日付のみを表すdate型の2つでの引き算はエラーになるのでご注意ください

固定の日付を足し引きする

先ほどは2つの日付の差分を算出しましたが、今度は固定の日付を足し算・引き算します

datetime.timedelta()を利用し「週」や「日」などを指定します

print(date_min)
print(date_min + datetime.timedelta(weeks=1))
Pythonの日付データに固定の日付を追加する

  • 週:weeks
  • 日:days
  • 時:hours
  • 分:minutes
  • 秒:seconds
print(date_min)
print(date_min + datetime.timedelta(weeks=1))
print(date_min + datetime.timedelta(days=1))
print(date_min + datetime.timedelta(hours=1))
print(date_min + datetime.timedelta(minutes=1))
print(date_min + datetime.timedelta(seconds=1))
Pythonの日付データの固定の日付の追加

もちろん数値をマイナス(days=-2)にすることで、日付を遡ることができます

print(date_min + datetime.timedelta(days=-2))
print(date_min + datetime.timedelta(days=-1))
print(date_min)
print(date_min + datetime.timedelta(days=1))
print(date_min + datetime.timedelta(days=2))
Pythonの日付データの固定の日付の追加

まとめ

今回は日付のデータに対して差分を求めたり、固定の日付を足し引きしたりする方法をご紹介してきました

日付型のデータは操作に癖があるため、ぜひこの機会に覚えて使ってみてください

お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。