Python Pandas BusinessHourオフセットオブジェクト - 次の営業日に移動する方法
PandasのBusinessHour.next_bdayプロパティを使うと、指定したタイムスタンプから次の営業日へ簡単に移動できます。この記事では、BusinessHourオフセットオブジェクトの作成方法から、next_bdayプロパティを使った次の営業日の取得までを、コード例とともにわかりやすく解説します。
必要なライブラリのインポート
まず、datetimeモジュールとpandasをインポートします。datetimeはオフセットの時間差を指定するために使用します。
import datetime import pandas as pd
BusinessHourオフセットの作成
次に、BusinessHourオフセットを作成します。BusinessHourはDateOffsetのサブクラスであり、営業時間(デフォルトでは9:00〜17:00)に基づいた日付計算を行うためのオフセットです。
ここでは、offset引数にtimedeltaを渡して、3日と3時間のオフセットを持つBusinessHourオブジェクトを作成します。
bhOffset = pd.tseries.offsets.BusinessHour(offset = datetime.timedelta(days = 3, hours = 3))
作成したBusinessHourオフセットを表示して確認しましょう。
print("\nBusinessHour Offset...\n", bhOffset)タイムスタンプの設定
PandasのTimestampオブジェクトを使って、基準となる日時を設定します。
timestamp = pd.Timestamp('2021-9-30 06:50:20')次の営業日を取得する
next_bdayプロパティは、BusinessHourオフセットにおける「次の営業日」を表します。タイムスタンプにこのプロパティを加算することで、次の営業日の日時を取得できます。
print("\nThe next business day...\n", timestamp + bhOffset.next_bday)完全なコード例
以下に、ここまでの手順をまとめた完全なコードを示します。
import datetime
import pandas as pd
# タイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-9-30 06:50:20')
# タイムスタンプを表示
print("Timestamp...\n", timestamp)
# BusinessHourオフセットを作成
# BusinessHourはDateOffsetのサブクラス
bhOffset = pd.tseries.offsets.BusinessHour(offset = datetime.timedelta(days = 3, hours = 3))
# BusinessHourオフセットを表示
print("\nBusinessHour Offset...\n", bhOffset)
# 次の営業日を表示
print("\nThe next business day...\n", timestamp + bhOffset.next_bday)実行結果
上記のコードを実行すると、以下のような出力が得られます。
Timestamp... 2021-09-30 06:50:20 BusinessHour Offset... <BusinessHour: offset=datetime.timedelta(days=3, seconds=10800): BH=09:00-17:00> The next business day... 2021-10-01 06:50:20
まとめ
このように、PandasのBusinessHourオフセットオブジェクトのnext_bdayプロパティを利用すれば、営業日を考慮した日付計算を簡単に行うことができます。基準日が2021年9月30日(木曜日)の場合、翌日の10月1日(金曜日)が次の営業日として返されていることが確認できます。土日や祝日を除外したビジネスロジックを実装したい場合に、非常に便利な機能です。
-
Python・PandasのTimestampオブジェクトから曜日を取得する方法
PandasのTimestampオブジェクトから曜日を取得するには、timestamp.weekday()メソッドを使用します。このメソッドは、対象の日付が何曜日に該当するかを数値で返してくれます。まずは、必要なライブラリをインポートしましょう。import pandas as pd import datetimeTimestampオブジェクトの作成次に、Pandasでタイムスタンプを設定し、Timestampオブジェクトを作成します。ここでは例として「2021年5月12日」を使用します。timestamp = pd.Timestamp(datetime.datetime(2021, 5, 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