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

Python Pandas入門:DateTimeIndexの日付が年の初日かどうかを判定するis_year_startプロパティの使い方

DateTimeIndexに含まれる日付が、その年の最初の日(1月1日)であるかどうかを判定するには、PandasのDateTimeIndex.is_year_startプロパティを使用します。このプロパティは、各日付に対して年の初日であればTrue、そうでなければFalseを返すブール値の配列を生成します。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

DatetimeIndexの作成

次に、期間6・頻度「D」(日単位)でDatetimeIndexを作成します。タイムゾーンにはオーストラリアのアデレード(Australia/Adelaide)を指定しています。

datetimeindex = pd.date_range('2021-12-30 02:30:50', periods=6, tz='Australia/Adelaide', freq='1D')

DateTimeIndexの表示

作成したDateTimeIndexを表示して確認します。

print("DateTimeIndex...\n", datetimeindex)

年の初日かどうかの判定

is_year_startプロパティを使って、DateTimeIndex内の各日付が年の最初の日かどうかをチェックします。

print("\nDateTimeIndexの日付が年の初日かどうかを確認...\n", datetimeindex.is_year_start)

サンプルコード全体

以下に完全なコード例を示します。

import pandas as pd

# 期間6・頻度D(日単位)のDatetimeIndexを作成
# タイムゾーンはAustralia/Adelaideを指定
datetimeindex = pd.date_range('2021-12-30 02:30:50', periods=6, tz='Australia/Adelaide', freq='1D')

# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)

# DateTimeIndexの頻度を表示
print("DateTimeIndex frequency...\n", datetimeindex.freq)

# 各日付が年の初日かどうかを判定
print("\nDateTimeIndexの日付が年の初日かどうかを確認...\n", datetimeindex.is_year_start)

実行結果

上記のコードを実行すると、以下のような出力が得られます。

DateTimeIndex...
DatetimeIndex(['2021-12-30 02:30:50+10:30', '2021-12-31 02:30:50+10:30',
'2022-01-01 02:30:50+10:30', '2022-01-02 02:30:50+10:30',
'2022-01-03 02:30:50+10:30', '2022-01-04 02:30:50+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='D')
DateTimeIndex frequency...
<Day>

DateTimeIndexの日付が年の初日かどうかを確認...
[False False True False False False]

結果の解説

出力結果を見ると、2021年12月30日から始まる6日間の日付の中で、「2022-01-01」だけがTrueになっていることがわかります。つまり、is_year_startは年が切り替わる1月1日のみを正しく検出しています。このように、時系列データの分析において特定の日付が年の境界に該当するかどうかを簡単に判定できるため、年度ごとの集計やフィルタリング処理などに活用できます。

  1. Pythonで日付シリーズから年間通算日(day of year)を取得して出力する方法

    はじめにpandasを使ったデータ分析では、日付データから「その年の何日目にあたるか」を求めたい場面がよくあります。この記事では、日付シリーズ(Series)から年間通算日(day of year)を簡単に取得して出力するPythonプログラムを紹介します。解決のアプローチこの問題を解決するには、以下の手順に従います。日付のSeriesを定義します。pd.date_range() を使って、開始日 2020-01-10 から5日分の日付範囲を生成します。Series.dt.dayofyear プロパティを使って、各日付の年間通算日を取得します。日付範囲の作成まず、開始日 2020-01-10

  2. 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)までの累積日数を合計し、そこに「日」の数を加えて