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

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プロパティを使えば、独自の営業カレンダーに基づいた日付計算を簡単に行うことができます。

  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

  2. 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