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

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 プロパティを使えば、時系列データから曜日情報を簡単に取り出せます。曜日ごとの傾向分析や特徴量エンジニアリングなど、さまざまな場面で活用できる便利な機能です。

  1. Python Pandas – 特定の時系列頻度でDateTimeIndexから分を抽出する方法

    特定の時系列頻度で作成した DateTimeIndex から「分(minute)」を抽出するには、DateTimeIndex.minute プロパティを使用します。このプロパティは、インデックス内の各日時に対応する分の値を Int64 型の配列として返します。 必要なライブラリをインポートする まず、pandas をインポートします。 import pandas as pd DateTimeIndex を作成する 次に、期間(periods)を 6、頻度(freq)を T(=分単位)とし、タイムゾーンをオーストラリア/シドニー(Australia/Sydney)に設定した DatetimeI

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

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