Python Pandas入門:DateTimeIndexから曜日を抽出する方法(dayofweekプロパティの使い方)
PythonのPandasライブラリでは、特定の時系列頻度を持つ DateTimeIndex から曜日を簡単に抽出できます。そのために使用するのが DateTimeIndex.dayofweek プロパティです。
このプロパティは、各日付に対応する曜日を整数値として返します。週は月曜日始まりとみなされ、月曜日が0、以降火曜日が1、水曜日が2と続き、日曜日が6 として表されます。
必要なライブラリのインポート
まず、Pandasをインポートします。
import pandas as pd
DatetimeIndexの作成
次に、開始日時「2021-10-20 02:30:50」から6期間分、頻度を「3D」(3日ごと)としてDatetimeIndexを作成します。タイムゾーンはオーストラリア/シドニー(Australia/Sydney)を指定しています。
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='3D')DateTimeIndexの頻度を確認する
作成したDatetimeIndexの頻度は、freq 属性で確認できます。
print("DateTimeIndex frequency...\n", datetimeindex.freq)曜日を取得する
dayofweek プロパティを呼び出すことで、各日付の曜日を数値(0〜6)として取得できます。
print("\nGet the day of week..\n", datetimeindex.dayofweek)完全なコード例
以下に、ここまでの手順をまとめたサンプルコードを示します。
import pandas as pd
# 期間6、頻度「3D」(3日ごと)のDatetimeIndexを作成
# タイムゾーンは Australia/Sydney を指定
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Sydney', freq='3D')
# DatetimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# DatetimeIndexの頻度を表示
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# 曜日を取得
# 週は月曜日始まりとみなされ、
# 月曜日は0、日曜日は6で表される
print("\nGet the day of week..\n", datetimeindex.dayofweek)実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeIndex... DatetimeIndex(['2021-10-20 02:30:50+11:00', '2021-10-23 02:30:50+11:00', '2021-10-26 02:30:50+11:00', '2021-10-29 02:30:50+11:00', '2021-11-01 02:30:50+11:00', '2021-11-04 02:30:50+11:00'], dtype='datetime64[ns, Australia/Sydney]', freq='3D') DateTimeIndex frequency... <3 * Days> Get the day of week.. Int64Index([2, 5, 1, 4, 0, 3], dtype='int64')
出力結果の解説
この結果から、以下のことが読み取れます。
- 開始日「2021-10-20」は水曜日なので 2 が返されています。
- 頻度が「3D」のため、以降の日付は3日ごと(10/23、10/26、10/29…)に生成されています。
- それぞれの曜日に対応する値(5=土曜日、1=火曜日、4=木曜日、0=月曜日、3=水曜日)が順に出力されています。
このように dayofweek プロパティを使えば、時系列データから曜日情報を簡単に取り出せます。曜日ごとの傾向分析や特徴量エンジニアリングなど、さまざまな場面で活用できる便利な機能です。
-
Python Pandas – 特定の時系列頻度でDateTimeIndexから分を抽出する方法
特定の時系列頻度で作成した DateTimeIndex から「分(minute)」を抽出するには、DateTimeIndex.minute プロパティを使用します。このプロパティは、インデックス内の各日時に対応する分の値を Int64 型の配列として返します。 必要なライブラリをインポートする まず、pandas をインポートします。 import pandas as pd DateTimeIndex を作成する 次に、期間(periods)を 6、頻度(freq)を T(=分単位)とし、タイムゾーンをオーストラリア/シドニー(Australia/Sydney)に設定した DatetimeI
-
Python Pandas入門:特定の時系列頻度でDateTimeIndexから時間(hour)を抽出する方法
特定の時系列頻度を持つ DateTimeIndex から時間(hour)を抽出したい場合は、DateTimeIndex.hour プロパティを使用します。このプロパティを使うことで、日時インデックスに含まれる各タイムスタンプの「時」の部分だけを簡単に取り出すことができます。必要なライブラリのインポートまず、必要なライブラリをインポートしましょう。import pandas as pdDateTimeIndexの作成次に、開始時刻「2021-10-20 02:35:55」から始まる、期間6・頻度「H」(時間単位)の DatetimeIndex を作成します。タイムゾーンはオーストラリアのシドニー