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

Python Pandas入門:DateTimeIndexの特定の時刻における値のインデックス位置を取得する方法

PandasのDateTimeIndexにおいて、特定の時刻に該当する値のインデックス位置(整数位置)を取得したい場合は、indexer_at_time()メソッドを使用します。このメソッドは、指定した時刻と一致する要素の位置を配列として返してくれるため、時系列データの中から特定の時間帯のデータを抽出する際に非常に便利です。

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

まず、Pandasをインポートします。

import pandas as pd

DatetimeIndexの作成

次に、開始日時「2021-10-30 02:30:50」から、期間5・頻度20分(freq='20T')、タイムゾーンはオーストラリア/アデレード(Australia/Adelaide)を指定してDatetimeIndexを作成します。

datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=5, tz='Australia/Adelaide', freq='20T')

DatetimeIndexの表示

作成したDatetimeIndexを確認してみましょう。

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

特定の時刻におけるインデックス位置の取得

indexer_at_time()メソッドに時刻「03:10:50」を渡すことで、その時刻に一致する値のインデックス位置を取得できます。

print("\n特定の時刻における値のインデックス位置...\n",
datetimeindex.indexer_at_time('2021-10-30 03:10:50'))

サンプルコード全体

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

import pandas as pd

# 期間5、頻度20分(T=分単位)でDatetimeIndexを作成
# タイムゾーンは Australia/Adelaide を指定
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=5, tz='Australia/Adelaide', freq='20T')

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

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

# 特定の時刻(03:10:50)における値のインデックス位置を表示
print("\n特定の時刻における値のインデックス位置...\n",
datetimeindex.indexer_at_time('2021-10-30 03:10:50'))

実行結果

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

DateTimeIndex...
DatetimeIndex(['2021-10-30 02:30:50+10:30', '2021-10-30 02:50:50+10:30',
'2021-10-30 03:10:50+10:30', '2021-10-30 03:30:50+10:30',
'2021-10-30 03:50:50+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='20T')
DateTimeIndex frequency...
<20 * Minutes>

特定の時刻における値のインデックス位置...
[2]

結果の解説

出力を見ると、DatetimeIndexには02:30:50から始まり20分間隔で5つの日時が含まれています。この中で「03:10:50」に一致するのは3番目の要素('2021-10-30 03:10:50+10:30')であるため、[2]という0始まりのインデックス位置が返されています。

なお、indexer_at_time()は日付ではなく「時刻」のみでマッチングを行う点に注意してください。日付をまたいで同じ時刻を持つ複数の要素が存在する場合、それらすべての位置が返されます。同様の用途では、時間範囲で抽出できるindexer_between_time()メソッドも合わせて覚えておくと便利です。

  1. Python・Pandasでインデックスの最小値を取得する方法(index.min()の使い方)

    Pandasのインデックス(Index)から最小値を返すには、index.min()メソッドを使用します。このメソッドを呼び出すだけで、インデックスに含まれる要素の中から最も小さい値を簡単に取得できます。まず、必要なライブラリをインポートしましょう。import pandas as pdPandasインデックスの作成次に、数値データを含むPandasインデックスを作成します。index = pd.Index([10.5, 20.4, 40.5, 25.6, 5.7, 6.8, 30.8, 50.2])作成したインデックスを表示して確認します。print(Pandas Index...\n, i

  2. 【Python・Pandas】utcnow()メソッドでUTCの日時を表す新しいタイムスタンプを取得する方法

    Pandasのtimestamp.utcnow()メソッドを使うと、現在のUTC(協定世界時)の日時を表す新しいTimestampオブジェクトを取得できます。タイムゾーンに関係なく、常にUTC基準の時刻が返されるため、国際的なデータ処理やログ管理に便利です。必要なライブラリのインポートまず、Pandasライブラリをインポートします。import pandas as pdタイムスタンプの作成次に、tz引数に「UTC」を指定してTimestampオブジェクトを作成します。timestamp = pd.Timestamp(2021-10-16T15:12:34.261811624, tz=UTC)U