Python PandasでPeriodIndexを作成し、月の日数を取得する方法
pandas.PeriodIndex()メソッドを使用すると、PeriodIndexを作成できます。また、各月の日数を取得するには、PeriodIndex.daysinmonthプロパティを利用します。この記事では、実際のコード例とともにその手順をわかりやすく解説します。
ライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
PeriodIndexオブジェクトの作成
PeriodIndexは、時間軸上の一定の期間(period)を表す序数値を格納した不変(immutable)のndarrayです。ここでは「freq」パラメータを使って頻度を日単位("D")に設定し、複数の日付からPeriodIndexオブジェクトを作成します。
periodIndex = pd.PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20', '2021-09-15', '2022-03-12', '2023-06-18'], freq="D")
作成したPeriodIndexオブジェクトを表示してみましょう。
print("PeriodIndex...\n", periodIndex)
さらに、daysinmonthプロパティを使うことで、PeriodIndexに含まれる各日付が属する月の日数を取得できます。
print("\nDays of the specific month from the PeriodIndex...\n", periodIndex.daysinmonth)
完全なコード例
以下に、これまでの手順をまとめた完全なコードを示します。
import pandas as pd
# PeriodIndexオブジェクトを作成
# PeriodIndexは、時間における一定の期間を示す序数値を保持する不変のndarray
# 「freq」パラメータで頻度を設定
periodIndex = pd.PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20',
'2021-09-15', '2022-03-12', '2023-06-18'], freq="D")
# PeriodIndexオブジェクトを表示
print("PeriodIndex...\n", periodIndex)
# PeriodIndexの頻度を表示
print("\nPeriodIndex frequency...\n", periodIndex.freq)
# 月の番号を表示(1 = 1月、2 = 2月 ... 12 = 12月)
print("\nMonth number...\n", periodIndex.month)
# 各日付が属する月の日数を表示
print("\nDays of the specific month from the PeriodIndex...\n", periodIndex.daysinmonth)
実行結果
上記のコードを実行すると、次のような出力が得られます。
PeriodIndex... PeriodIndex(['2018-07-25', '2019-10-30', '2020-11-20', '2021-09-15', '2022-03-12', '2023-06-18'], dtype='period[D]') PeriodIndex frequency... <Day> Month number... Int64Index([7, 10, 11, 9, 3, 6], dtype='int64') Days of the specific month from the PeriodIndex... Int64Index([31, 31, 30, 30, 31, 30], dtype='int64')
このように、daysinmonthプロパティを使えば、例えば2018年7月は31日、2020年11月は30日といった具合に、各日付が属する月の日数を簡単に取得できます。うるう年の2月なども自動的に正しく判定されるため、日付に関するデータ分析において非常に便利な機能です。
-
Python Pandas – Period(期間)オブジェクトから月の日付を取得する方法
はじめにpandasのPeriodオブジェクトが属する「月の日」(日付の日部分)を取得するには、period.dayプロパティを使用します。このプロパティは、対象となる期間が何日のものかを整数値として返してくれます。必要なライブラリのインポートまず、必要なライブラリをインポートしましょう。import pandas as pdPeriodオブジェクトの作成pandas.Periodは、特定の期間(時点)を表すオブジェクトです。ここでは、2つのPeriodオブジェクトを作成してみます。period1 = pd.Period("2021-09-18") period2 = pd
-
Pythonで月の最終日を取得する方法【calendarモジュールの使い方】
Pythonでは、標準ライブラリのcalendarモジュールを使うことで、指定した月の最終日(末日)を簡単に取得できます。calendarモジュールにはmonthrange(year, month)という便利なメソッドが用意されており、指定した年・月の「1日の曜日」と「その月の日数」をタプルで返します。この情報を組み合わせれば、月の最終日の日付や曜日を自在に求めることが可能です。 monthrange()メソッドの基本 calendar.monthrange(year, month)は、以下の2つの値を返します。 第1戻り値:その月の1日の曜日(0が日曜日、6が土曜日) 第2戻り値:その月の