Python PandasのCustomBusinessHourオフセットで次の営業日へ移動する方法
Pandasで次の営業日に移動するには、CustomBusinessHourオフセットオブジェクトが持つnext_bdayプロパティを使用します。この記事では、実際のコード例とともに、その基本的な使い方をわかりやすく解説します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
タイムスタンプオブジェクトの作成
PandasでTimestampオブジェクトを作成します。ここでは「2021年12月20日 08:35:10」を例にします。
timestamp = pd.Timestamp('2021-12-20 08:35:10')
CustomBusinessHourオフセットの作成
次に、CustomBusinessHourオフセットを作成します。CustomBusinessHourはDateOffsetクラスのサブクラスであり、営業時間や営業曜日を柔軟にカスタマイズできるのが特徴です。
各パラメータの意味は以下の通りです。
- start: 営業開始時刻(ここでは09:30)
- end: 営業終了時刻(ここでは18:00)
- n: オフセットの適用回数(ここでは5)
- weekmask: 有効な営業曜日(ここでは月・火・水・金。木曜日と土日は除外)
cbhOffset = pd.tseries.offsets.CustomBusinessHour(start='09:30', end='18:00', n=5, weekmask='Mon Tue Wed Fri')
オフセットと次の営業日の表示
作成したCustomBusinessHourオフセットを表示し、next_bdayプロパティを使って次の営業日を取得します。
print("\nCustomBusinessHour Offset...\n", cbhOffset)
print("\nThe next business day...\n", timestamp + cbhOffset.next_bday)
完全なコード例
以下に、ここまでの手順をまとめた完全なコードを示します。
import pandas as pd
# Pandasでタイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-12-20 08:35:10')
# タイムスタンプを表示
print("Timestamp...\n", timestamp)
# CustomBusinessHourオフセットを作成
# CustomBusinessHourはDateOffsetのサブクラス
# weekmaskで有効な営業曜日を指定
cbhOffset = pd.tseries.offsets.CustomBusinessHour(start='09:30', end='18:00', n=5, weekmask='Mon Tue Wed Fri')
# CustomBusinessHourオフセットを表示
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# 次の営業日を表示
print("\nThe next business day...\n", timestamp + cbhOffset.next_bday)
実行結果
上記のコードを実行すると、以下のような出力が得られます。
Timestamp... 2021-12-20 08:35:10 CustomBusinessHour Offset... <5 * CustomBusinessHours: CBH=09:30-18:00> The next business day... 2021-12-21 08:35:10
結果の解説
元のタイムスタンプは「2021年12月20日(月)08:35:10」です。weekmaskには月・火・水・金が指定されているため、翌日の12月21日(火)が次の営業日として計算され、「2021-12-21 08:35:10」が出力されます。
注目すべき点は、時刻部分(08:35:10)がそのまま保持されていることです。next_bdayは日付のみを次の営業日に進めるため、元の時刻情報は変わりません。このように、CustomBusinessHourのnext_bdayプロパティを使えば、独自の営業カレンダーに基づいた日付計算を簡単に行うことができます。
-
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