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

Python Pandas入門:DateTimeIndexの日付が四半期の最初の日かどうかを判定する方法

DateTimeIndex内の日付が四半期の最初の日(開始日)であるかどうかを確認するには、PandasのDateTimeIndex.is_quarter_startプロパティを使用します。このプロパティは、各日付が四半期の初日であれば True、そうでなければ False を要素とするブール値の配列を返します。

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

まず、pandasをインポートします。

import pandas as pd

2. DatetimeIndexの作成

開始日時を「2021-10-1 02:30:50」とし、期間を6、頻度を「30D」(30日間隔)、タイムゾーンを「Australia/Adelaide」に指定してDatetimeIndexを作成します。

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

3. DateTimeIndexの表示

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

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

4. 四半期の最初の日かどうかをチェック

is_quarter_startプロパティを使って、各日付が四半期の初日かどうかを判定します。判定は暦上の以下の四半期に基づいて行われます。

  • 第1四半期:1月1日 ~ 3月31日
  • 第2四半期:4月1日 ~ 6月30日
  • 第3四半期:7月1日 ~ 9月30日
  • 第4四半期:10月1日 ~ 12月31日
print("\nCheck whether the date in DateTimeIndex is the first day of the quarter...\n",
datetimeindex.is_quarter_start)

サンプルコード全体

以下が完全なコード例です。

import pandas as pd

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

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

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

# 各日付が四半期の最初の日かどうかをチェック
# 判定は1年を次の四半期に区分したものに基づきます:
# 第1四半期 = 1月1日~3月31日
# 第2四半期 = 4月1日~6月30日
# 第3四半期 = 7月1日~9月30日
# 第4四半期 = 10月1日~12月31日
print("\nCheck whether the date in DateTimeIndex is the first day of the quarter...\n",
datetimeindex.is_quarter_start)

実行結果

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

DateTimeIndex...
DatetimeIndex(['2021-10-01 02:30:50+09:30', '2021-10-31 02:30:50+10:30',
'2021-11-30 02:30:50+10:30', '2021-12-30 02:30:50+10:30',
'2022-01-29 02:30:50+10:30', '2022-02-28 02:30:50+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='30D')
DateTimeIndex frequency...
<30 * Days>

Check whether the date in DateTimeIndex is the first day of the quarter...
[ True False False False False False]

結果の解説

最初の要素「2021-10-01」は10月1日、つまり第4四半期(10月~12月)の初日に該当するため True となっています。それ以降の日付はいずれも四半期の開始日ではないため、すべて False が返されています。このように is_quarter_start プロパティを使えば、時系列データから四半期の起点となる日付を簡単に抽出・判定できます。

  1. Pythonで特定の年の最初の日(1月1日の曜日)を取得する方法

    このプログラムでは、指定した年の最初の日(1月1日)が何曜日にあたるかを出力します。対象となる年は、ユーザーからの入力として受け取ります。処理の流れ(アルゴリズム)ステップ1:datetimeライブラリをインポートする。 ステップ2:ユーザーから年を入力として受け取る。 ステップ3:datetime.datetime()関数に「年・月・日」を引数として渡し、その年の最初の日を取得する。 ステップ4:strftime()関数を使って、最初の日の曜日を表示する。サンプルコードimport datetime year = int(input(Enter year: )) firstday = dat

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