Python pandas:DateTimeIndexの日付が年の最終日かどうかを判定する方法(is_year_endプロパティ)
DateTimeIndexに含まれる日付が、その年の最終日(12月31日)であるかどうかを確認するには、pandasのDateTimeIndex.is_year_endプロパティを使用します。このプロパティは、各日付が年の最終日であればTrue、それ以外はFalseとなるブール値の配列を返します。
ライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
DatetimeIndexの作成
ここでは、開始日時を「2021-12-25 02:30:50」、期間を6、頻度を「2D」(2日間隔)、タイムゾーンを「Australia/Adelaide」としてDatetimeIndexを作成します。開始日が12月25日のため、生成される日付の中には12月31日も含まれます。
datetimeindex = pd.date_range('2021-12-25 02:30:50', periods=6, tz='Australia/Adelaide', freq='2D')
DateTimeIndexの表示
作成したDateTimeIndexを表示して内容を確認します。
print("DateTimeIndex...\n", datetimeindex)
年の最終日かどうかを判定する
is_year_endプロパティを参照すると、DateTimeIndex内の各日付が年の最終日であるかどうかを一括で判定できます。
print("\nDateTimeIndex内の日付が年の最終日かどうかを確認...\n", datetimeindex.is_year_end)
完全なサンプルコード
以下に、ここまでの手順をまとめた完全なコードを示します。
import pandas as pd
# 期間6、頻度「2D」(2日間隔)のDatetimeIndexを作成
# タイムゾーンは Australia/Adelaide を指定
datetimeindex = pd.date_range('2021-12-25 02:30:50', periods=6, tz='Australia/Adelaide', freq='2D')
# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndexの頻度を表示
print("\nDateTimeIndexの頻度...\n", datetimeindex.freq)
# 各日付が年の最終日かどうかを判定
print("\nDateTimeIndex内の日付が年の最終日かどうかを確認...\n",
datetimeindex.is_year_end)
実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeIndex... DatetimeIndex(['2021-12-25 02:30:50+10:30', '2021-12-27 02:30:50+10:30', '2021-12-29 02:30:50+10:30', '2021-12-31 02:30:50+10:30', '2022-01-02 02:30:50+10:30', '2022-01-04 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='2D') DateTimeIndexの頻度... <2 * Days> DateTimeIndex内の日付が年の最終日かどうかを確認... [False False False True False False]
結果の解説
出力結果を見ると、6つの日付のうち「2021年12月31日」に対応する要素だけがTrueになっていることがわかります。このように、is_year_endプロパティを使えば、DateTimeIndex内の日付が年の最終日(大晦日)かどうかを簡単に判定できます。同様に、年の最初の日を判定したい場合はis_year_startプロパティを使用します。
-
Pythonで日付シリーズから年間通算日(day of year)を取得して出力する方法
はじめにpandasを使ったデータ分析では、日付データから「その年の何日目にあたるか」を求めたい場面がよくあります。この記事では、日付シリーズ(Series)から年間通算日(day of year)を簡単に取得して出力するPythonプログラムを紹介します。解決のアプローチこの問題を解決するには、以下の手順に従います。日付のSeriesを定義します。pd.date_range() を使って、開始日 2020-01-10 から5日分の日付範囲を生成します。Series.dt.dayofyear プロパティを使って、各日付の年間通算日を取得します。日付範囲の作成まず、開始日 2020-01-10
-
Pythonで日付から「年の何日目か」を求める方法
「YYYY-MM-DD」形式の日付が与えられたとき、その日がその年の何日目にあたるかを返すプログラムを考えてみましょう。たとえば、日付が「2019-02-10」であれば、これはその年の41日目に相当します。 解決のための手順 この問題は、以下のステップで解くことができます。 各月の日数を格納した配列Dを用意します。例:[0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] 日付文字列を年・月・日のリストに変換します。 うるう年の場合は、2月の日数を29日に変更します。 1月から(対象の月 − 1)までの累積日数を合計し、そこに「日」の数を加えて