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

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

特定の時系列頻度を持つ DateTimeIndex から時間(hour)を抽出したい場合は、DateTimeIndex.hour プロパティを使用します。このプロパティを使うことで、日時インデックスに含まれる各タイムスタンプの「時」の部分だけを簡単に取り出すことができます。

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

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

import pandas as pd

DateTimeIndexの作成

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

datetimeindex = pd.date_range('2021-10-20 02:35:55', periods=6, tz='Australia/Sydney', freq='H')

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

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

時間(hour)の抽出

hour プロパティにアクセスすることで、各タイムスタンプから時間の値を取得できます。

print("\nGetting the hour..\n", datetimeindex.hour)

サンプルコード全体

以下が完全なサンプルコードです。

import pandas as pd

# 期間6、頻度H(時間単位)のDatetimeIndexを作成
# タイムゾーンはAustralia/Sydney
datetimeindex = pd.date_range('2021-10-20 02:35:55', periods=6, tz='Australia/Sydney', freq='H')

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

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

# 時間(hour)を取得して表示
print("\nGetting the hour..\n", datetimeindex.hour)

実行結果

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

DateTimeIndex...
DatetimeIndex(['2021-10-20 02:35:55+11:00', '2021-10-20 03:35:55+11:00',
'2021-10-20 04:35:55+11:00', '2021-10-20 05:35:55+11:00',
'2021-10-20 06:35:55+11:00', '2021-10-20 07:35:55+11:00'],
dtype='datetime64[ns, Australia/Sydney]', freq='H')

DateTimeIndex frequency...
<Hour>

Getting the hour..
Int64Index([2, 3, 4, 5, 6, 7], dtype='int64')

解説

出力結果を見ると、pd.date_range() によって1時間ごとのタイムスタンプが6個生成され、それぞれにシドニーのタイムゾーンオフセット(+11:00)が付与されていることがわかります。そして datetimeindex.hour を呼び出すことで、[2, 3, 4, 5, 6, 7] という整数値のインデックスとして時間部分のみが抽出されています。

同様に、.minute.second プロパティを使えば分や秒も抽出できるため、時系列データの分析において非常に便利な機能です。

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

    特定の時系列頻度を持つDateTimeIndexから秒を抽出するには、PandasのDateTimeIndex.secondプロパティを使用します。このプロパティは、インデックス内の各日時から秒の部分(0〜59の整数値)を取り出し、Indexオブジェクトとして返します。必要なライブラリのインポートまず、必要なライブラリをインポートしましょう。import pandas as pd秒単位のDatetimeIndexを作成するpd.date_range()を使って、要素数(periods)を6、頻度(freq)を'S'(秒)に設定したDatetimeIndexを作成します。タイムゾ

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

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