【Pandas】nヶ月後の日付を求めたい

【Pandas】nヶ月後の日付を求めたい

はじめに

コジマです。

pythonでn日後を求めるために
datetimeモジュールのtimedelta関数を使って求めることができますが、月単位の演算ができません。

from datetime import datetime, timedelta

today = datetime.today()
tomorrow = today + timedelta(days = 1)

print("today:{}".format(today.strftime('%Y/%m/%d')))
print("tomorrow:{}".format(tomorrow.strftime('%Y/%m/%d')))
today:2020/01/07
tomorrow:2020/01/08

nヶ月後の求め方

dateutilモジュールのrelativedelta関数を使用します。
monthsのオプションを渡してあげれば良いです。

from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta

today = datetime.today()
next_month = today + relativedelta(months = 1)

print("today:{}".format(today.strftime('%Y/%m/%d')))
print("next_month:{}".format(next_month.strftime('%Y/%m/%d')))
today:2020/01/07
next_month:2020/02/07

前に戻りたいときは-演算するか、引数にマイナスの値を渡してあげれば良いです。

from datetime import datetime, timedelta
from dateutil.relativedelta import relativedelta

today = datetime.today()
tomorrow = today + timedelta(days = 1)# 明日
yesterday = today + timedelta(days = -1) # 昨日(マイナス渡す)
yesterday2 = today - timedelta(days = 1) # 昨日(引く)

next_month = today + relativedelta(months = 1) # 来月
four_months_ago = today + relativedelta(months = -4) # 4ヶ月前(マイナス渡す)
four_months_ago2 = today - relativedelta(months = 4) # 4ヶ月前(引く)

print("today:{}".format(today.strftime('%Y/%m/%d')))
print("yesterday:{}".format(yesterday.strftime('%Y/%m/%d')))
print("yesterday2:{}".format(yesterday2.strftime('%Y/%m/%d')))

print("next_month:{}".format(next_month.strftime('%Y/%m/%d')))
print("four_months_ago:{}".format(four_months_ago.strftime('%Y/%m/%d')))
print("four_months_ago2:{}".format(four_months_ago2.strftime('%Y/%m/%d')))
today:2020/01/07
yesterday:2020/01/06
yesterday2:2020/01/06
next_month:2020/02/07
four_months_ago:2019/09/07
four_months_ago2:2019/09/07

さいごに

まとめると

  • 日付の演算はdatetimeモジュールのtimedelta関数
  • 月単位で変更したいときはdateutilモジュールのrelativedelta関数
  • 足すだけじゃなくて引くこともできるよ

な感じですね!

この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter(@kojimanotech)を
フォローしてくれたらうれしいです!

もっと学びたい人はこちら

Python、機械学習をもっと学びたいという人のためにおすすめのUdemy講座を紹介いたします!

Pythonの基本文法を押さえたい方はこちらの動画がおすすめです。
エンジニアになりたいと思って駆け出した方がPythonを選んだときはこの講座から始めるとよいと思います。
Python 3 エンジニア認定基礎試験の対策にもなります。
はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス

プログラムの基礎が分かる方で機械学習に興味がある方はこちらがおすすめです。
SIGNATEという日本版Kaggleのサービスを実際に使用してハンズオン形式でデータ分析・機械学習を学ぶことができます。
もちろんこの動画だけで特級のデータサイエンティストになれるわけではないですが、機械学習の門を叩くにはとても良い講座だと思います。
【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門

Pythonのライブラリで必ず押さえておきたいのがNumpy, Pandas, Matplotlibの3つ。
この3つを網羅的に学ぶことができる講座です。
英語の講座ですが、わかりやすい英語ですし、ソースコードメインで解説しているので
ソースコードを一緒に手を動かしながら学べば十分理解することができます。
機械学習を使わない人にもおすすめの講座です。
2021 NumPy, Pandas and Matplotlib A-Z™: for Machine Learning

気になった人はぜひ見てみてくださいね!

以上、コジマでした。


Pythonカテゴリの最新記事