Python
 Computer >> コンピューター >  >> プログラミング >> Python

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プロパティを使えば、時系列データの中から月末日に該当するレコードを簡単に抽出・判定できます。月末ごとの集計処理などで非常に便利な機能なので、ぜひ活用してください。

  1. 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」を渡すことで、シリー

  2. Pythonで月の最終日を取得する方法【calendarモジュールの使い方】

    Pythonでは、標準ライブラリのcalendarモジュールを使うことで、指定した月の最終日(末日)を簡単に取得できます。calendarモジュールにはmonthrange(year, month)という便利なメソッドが用意されており、指定した年・月の「1日の曜日」と「その月の日数」をタプルで返します。この情報を組み合わせれば、月の最終日の日付や曜日を自在に求めることが可能です。 monthrange()メソッドの基本 calendar.monthrange(year, month)は、以下の2つの値を返します。 第1戻り値:その月の1日の曜日(0が日曜日、6が土曜日) 第2戻り値:その月の