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

Python Pandas入門:DateTimeIndexから年間通算日(dayofyear)を抽出する方法

特定の時系列頻度を持つ DateTimeIndex から年間通算日(その年の何日目にあたるかを表す序数)を抽出したい場合は、Pandas の DateTimeIndex.dayofyear プロパティを使用します。このプロパティは、各日付に対して 1月1日を「1」として数えた通し番号を返します。

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

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

import pandas as pd

DatetimeIndex の作成

次に、開始日時を「2021-10-20 02:30:50」、期間を6、頻度を「D」(日単位)として DatetimeIndex を作成します。タイムゾーンにはオーストラリアのシドニー(Australia/Sydney)を指定しています。

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

DateTimeIndex の表示と年間通算日の取得

作成した DateTimeIndex を表示してみましょう。

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

続いて、dayofyear プロパティを使って年間通算日を取得します。

print("\nGet the ordinal day of year..\n", datetimeindex.dayofyear)

サンプルコード(完全版)

以下に、これまでの手順をまとめた完全なコードを示します。

import pandas as pd

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

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

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

# 年間通算日を取得して表示
print("\nGet the ordinal day of year..\n", datetimeindex.dayofyear)

実行結果

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

DateTimeIndex...
DatetimeIndex(['2021-10-20 02:30:50+11:00', '2021-10-21 02:30:50+11:00',
'2021-10-22 02:30:50+11:00', '2021-10-23 02:30:50+11:00',
'2021-10-24 02:30:50+11:00', '2021-10-25 02:30:50+11:00'],
dtype='datetime64[ns, Australia/Sydney]', freq='D')
DateTimeIndex frequency...
<Day>

Get the ordinal day of year..
Int64Index([293, 294, 295, 296, 297, 298], dtype='int64')

解説

実行結果を見ると、開始日の「2021-10-20」はその年の293日目にあたり、以降の日付に対して 294、295、296、297、298 と順に番号が割り当てられていることがわかります。

このように dayofyear プロパティを使えば、タイムゾーン付きの DateTimeIndex からでも簡単に年間通算日を抽出できます。季節性の分析や、日付データを数値特徴量として機械学習モデルに渡す前処理など、さまざまな場面で活用できる便利な機能です。

  1. Python Pandas入門:特定の時系列頻度でDateTimeIndexから時間(hour)を抽出する方法

    特定の時系列頻度を持つ DateTimeIndex から時間(hour)を抽出したい場合は、DateTimeIndex.hour プロパティを使用します。このプロパティを使うことで、日時インデックスに含まれる各タイムスタンプの「時」の部分だけを簡単に取り出すことができます。必要なライブラリのインポートまず、必要なライブラリをインポートしましょう。import pandas as pdDateTimeIndexの作成次に、開始時刻「2021-10-20 02:35:55」から始まる、期間6・頻度「H」(時間単位)の DatetimeIndex を作成します。タイムゾーンはオーストラリアのシドニー

  2. Python Pandas – Periodオブジェクトから年間通算日を取得する方法

    PandasのPeriodオブジェクトから年間通算日(その年の何日目にあたるか)を取得したい場合は、period.dayofyearプロパティを使用します。このプロパティは、うるう年でない通常の年では1〜365、うるう年では1〜366の範囲の値を返します。 必要なライブラリのインポート まず、pandasをインポートします。 import pandas as pd pandas.Periodは、ある期間の時点を表すオブジェクトです。ここでは、2つのPeriodオブジェクトを作成してみましょう。 period1 = pd.Period(2020-09-23) period2 = pd.Perio