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 からでも簡単に年間通算日を抽出できます。季節性の分析や、日付データを数値特徴量として機械学習モデルに渡す前処理など、さまざまな場面で活用できる便利な機能です。
-
Python Pandas入門:特定の時系列頻度でDateTimeIndexから時間(hour)を抽出する方法
特定の時系列頻度を持つ DateTimeIndex から時間(hour)を抽出したい場合は、DateTimeIndex.hour プロパティを使用します。このプロパティを使うことで、日時インデックスに含まれる各タイムスタンプの「時」の部分だけを簡単に取り出すことができます。必要なライブラリのインポートまず、必要なライブラリをインポートしましょう。import pandas as pdDateTimeIndexの作成次に、開始時刻「2021-10-20 02:35:55」から始まる、期間6・頻度「H」(時間単位)の DatetimeIndex を作成します。タイムゾーンはオーストラリアのシドニー
-
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