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

Python PandasでBusinessHourオフセットを作成する方法

Pandasで営業時間(ビジネスアワー)を基準とした日時計算を行いたい場合、pd.tseries.offsets.BusinessHour()メソッドを使用すると、独自の営業時間に合わせたオフセットを簡単に作成できます。本記事では、BusinessHourオフセットの基本的な作成方法から、タイムスタンプへの適用までを具体的なコード例とともに解説します。

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

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

import pandas as pd

BusinessHourオフセットの作成手順

1. オフセットオブジェクトの生成

BusinessHourはDateOffsetクラスのサブクラスであり、営業時間を考慮した日付計算を実現します。startパラメータには営業開始時刻を、endパラメータには営業終了時刻を、それぞれ24時間形式の文字列で指定します。

bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")

上記の例では、午前9時30分から午後6時までを営業時間として設定しています。デフォルトでは9:00〜17:00が設定されるため、独自の勤務体系に合わせて柔軟に変更できる点が特徴です。

2. タイムスタンプの設定

次に、オフセットを適用する対象となるTimestampオブジェクトを作成します。

timestamp = pd.Timestamp('2021-1-1 01:55:30')

3. オフセットの適用と結果の表示

作成したオフセットをタイムスタンプに加算し、更新後の日時を表示します。

print("\nUpdated Timestamp...\n", timestamp + bhOffset)

なお、元のタイムスタンプが営業時間外の場合、加算結果は自動的に直近の営業開始時刻へと調整されます。この挙動により、営業日ベースの正確なスケジュール計算が可能になります。

完全なコード例

ここまでの手順をまとめたコード全体は以下の通りです。

import pandas as pd

# Pandasでタイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-1-1 01:55:30')

# タイムスタンプを表示
print("Timestamp...\n", timestamp)

# BusinessHourオフセットを作成
# BusinessHourはDateOffsetクラスのサブクラス
# start:営業開始時刻(24時間形式)
# end:営業終了時刻(24時間形式)
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")

# BusinessHourオフセットを表示
print("\nBusinessHour Offset...\n", bhOffset)

# オフセットをタイムスタンプに加算し、更新後の日時を表示
print("\nUpdated Timestamp...\n", timestamp + bhOffset)

実行結果

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

Timestamp...
 2021-01-01 01:55:30

BusinessHour Offset...
 <BusinessHour: BH=09:30-18:00>

Updated Timestamp...
 2021-01-01 10:30:00

出力結果を見ると、元のタイムスタンプ「2021-01-01 01:55:30」は営業時間外(深夜)であるため、オフセット適用後は設定した営業開始時刻「09:30」を基準に計算され、「2021-01-01 10:30:00」という結果になっています。このようにBusinessHourオフセットを活用することで、金融市場や顧客対応など、営業時間を考慮した日時処理を正確に行えます。

  1. Python PandasでUTCオフセット時間を取得する方法

    PandasでタイムスタンプのUTCオフセット時間を取得するには、timestamp.utcoffset()メソッドを使用します。このメソッドは、タイムゾーンが設定されたTimestampオブジェクトに対して、協定世界時(UTC)からのずれ(オフセット)を返します。まずは、必要なライブラリをインポートしましょう。import pandas as pd手順1:タイムスタンプの作成次に、タイムゾーンとして「UTC」を指定してTimestampオブジェクトを作成します。timestamp = pd.Timestamp(2021-10-16T15:12:34.261811624, tz=UTC)手順2

  2. 【Pandas入門】Pythonでタイムスタンプを比較する方法をわかりやすく解説

    はじめに:Pandasでのタイムスタンプ比較の基本 データ分析の現場では、日付や時刻のデータ(タイムスタンプ)を扱う場面が非常に多くあります。例えば「購入日と整備日の差は何日か」「特定の日付以降のレコードだけを抽出したい」といったケースです。 Pandasでは、インデックス演算子(角括弧 [])を使って列にアクセスし、タイムスタンプ同士を直接比較・差分計算することができます。この記事では、具体的なサンプルコードを通じて、その方法をわかりやすく解説します。 1. ライブラリのインポート まず、必要なライブラリであるPandasをインポートします。 import pandas as pd 2.