Python Pandas – DateTimeIndexの日付が月末日かどうかを判定する方法
DateTimeIndex内の日付がその月の最終日(月末日)であるかどうかを確認するには、DateTimeIndex.is_month_endプロパティを使用します。このプロパティは、各日付が月末日であればTrue、そうでなければFalseとなるブール値の配列を返します。
手順1:必要なライブラリをインポートする
まず、pandasをインポートします。
import pandas as pd
手順2:DatetimeIndexを作成する
次に、開始日時「2021-09-15 06:40:35」、期間6、頻度15D(15日間隔)、タイムゾーンをオーストラリア/アデレードに設定したDatetimeIndexを作成します。
datetimeindex = pd.date_range('2021-9-15 06:40:35', periods=6, tz='Australia/Adelaide', freq='15D')手順3:DateTimeIndexを表示する
作成したDateTimeIndexを表示して内容を確認します。
print("DateTimeIndex...\n", datetimeindex)手順4:日付が月末日かどうかを判定する
is_month_endプロパティを使って、各日付が月末日であるかどうかをチェックします。
print("\nDateTimeIndexの日付が月末日かどうかを確認...\n", datetimeindex.is_month_end)完全なコード例
以下に、ここまでの手順をまとめた完全なサンプルコードを示します。
import pandas as pd
# 期間6、頻度15D(15日間隔)のDatetimeIndexを作成
# タイムゾーンはオーストラリア/アデレード
datetimeindex = pd.date_range('2021-9-15 06:40:35', periods=6, tz='Australia/Adelaide', freq='15D')
# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndexの頻度を表示
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# DateTimeIndexの日付が月末日かどうかを確認
print("\nDateTimeIndexの日付が月末日かどうかを確認...\n", datetimeindex.is_month_end)実行結果
上記のコードを実行すると、次のような出力が得られます。
DateTimeIndex... DatetimeIndex(['2021-09-15 06:40:35+09:30', '2021-09-30 06:40:35+09:30', '2021-10-15 06:40:35+10:30', '2021-10-30 06:40:35+10:30', '2021-11-14 06:40:35+10:30', '2021-11-29 06:40:35+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='15D') DateTimeIndex frequency... <15 * Days> DateTimeIndexの日付が月末日かどうかを確認... [False True False False False False]
結果の解説
出力結果を見ると、判定結果は [False True False False False False] となっています。これは、2番目の日付である「2021年9月30日」だけが9月の最終日(9月は30日まで)に該当するためです。それ以外の日付はいずれも各月の末日ではないためFalseと判定されています。
なお、タイムゾーンに「Australia/Adelaide」を指定しているため、10月以降のオフセットが+09:30から+10:30に変化しています。これはアデレードでサマータイム( daylight saving time )が始まるためで、date_rangeが自動的に考慮した結果です。
このようにis_month_endプロパティを使えば、時系列データの中から月末日に該当するレコードを簡単に抽出・判定できます。月末ごとの集計処理などで非常に便利な機能なので、ぜひ活用してください。
-
Python・Pandasシリーズの最後の要素にアクセスする方法
Pandasシリーズの最後の要素にアクセスするには、iat属性を使用するのが便利です。iatは、行と列の位置を整数(インデックス番号)で指定して単一の値を高速に取得するための属性であり、負のインデックス「-1」を指定すれば、末尾の要素に直接アクセスできます。必要なライブラリのインポートまず、Pandasライブラリをインポートします。import pandas as pdサンプルデータの作成数値を含むPandasシリーズを作成します。data = pd.Series([10, 20, 5, 65, 75, 85, 30, 100])iatで最後の要素を取得するiatに「-1」を渡すことで、シリー
-
Pythonで月の最終日を取得する方法【calendarモジュールの使い方】
Pythonでは、標準ライブラリのcalendarモジュールを使うことで、指定した月の最終日(末日)を簡単に取得できます。calendarモジュールにはmonthrange(year, month)という便利なメソッドが用意されており、指定した年・月の「1日の曜日」と「その月の日数」をタプルで返します。この情報を組み合わせれば、月の最終日の日付や曜日を自在に求めることが可能です。 monthrange()メソッドの基本 calendar.monthrange(year, month)は、以下の2つの値を返します。 第1戻り値:その月の1日の曜日(0が日曜日、6が土曜日) 第2戻り値:その月の