Python Pandas入門:CustomBusinessHourオフセットに適用された増分の数(n)を取得する方法
CustomBusinessHourオフセットに適用された増分の数を返すには、PandasのCustomBusinessHour.nプロパティを使用します。この記事では、実際のコード例とともにその使い方をわかりやすく解説します。
CustomBusinessHour.nプロパティとは
CustomBusinessHourは、Pandasの日付オフセットクラスであるDateOffsetのサブクラスの一つです。標準の営業時間(デフォルトは9:00〜17:00)に基づいて日時を進めることができ、weekmask引数を使えば有効な営業曜日を自由にカスタマイズできます。
オフセット作成時に指定したn(増分の数)の値は、後から.nプロパティを参照することで確認できます。
実装手順
1. 必要なライブラリをインポートする
まず、必要なライブラリをインポートします。
import pandas as pd
2. タイムスタンプオブジェクトを設定する
Pandasでタイムスタンプオブジェクトを設定します。
timestamp = pd.Timestamp('2021-11-14 05:20:30')
3. CustomBusinessHourオフセットを作成する
CustomBusinessHourオフセットを作成します。ここでは、増分の数としてn=7を指定し、営業曜日を「月・火・水・金」に設定しています(木曜日は除外)。
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n=7, weekmask='Mon Tue Wed Fri')
4. タイムスタンプにオフセットを適用して表示する
タイムスタンプにオフセットを加算し、更新されたタイムスタンプを表示します。
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
5. 増分の数を返す
指定したCustomBusinessHourオブジェクトに適用された増分の数を返します。
print("\nThe count of increments on the CustomBusinessHour object..\n", cbhOffset.n)
完全なコード例
以下が全体のコードです。
import pandas as pd
# Pandasでタイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-11-14 05:20:30')
# タイムスタンプを表示
print("Timestamp...\n", timestamp)
# CustomBusinessHourオフセットを作成
# CustomBusinessHourはDateOffsetのサブクラス
# weekmaskで有効な営業曜日を指定(月・火・水・金)
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n=7, weekmask='Mon Tue Wed Fri')
# CustomBusinessHourオフセットを表示
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# タイムスタンプにオフセットを加算し、更新後のタイムスタンプを表示
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
# オフセットオブジェクトに適用された頻度を文字列として返す
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)
# 指定したCustomBusinessHourオブジェクトの増分の数を返す
print("\nThe count of increments on the CustomBusinessHour object..\n", cbhOffset.n)
実行結果
上記のコードを実行すると、次のような出力が得られます。
Timestamp...
2021-11-14 05:20:30
CustomBusinessHour Offset...
<7 * CustomBusinessHours: CBH=09:00-17:00>
Updated Timestamp...
2021-11-15 16:00:00
Frequency applied on the given CustomBusinessHour Offset object...
7CBH
The count of increments on the CustomBusinessHour object..
7
出力結果のポイント
- 元のタイムスタンプは2021年11月14日(日曜日)5:20:30ですが、日曜日は営業日ではないため、オフセット適用後は翌営業日の2021年11月15日(月曜日)16:00:00になっています。
freqstrプロパティの出力「7CBH」は、7単位のCustomBusinessHour頻度が適用されていることを示します。nプロパティの出力「7」は、オフセット作成時に指定した増分の数が正しく保持されていることを確認できます。
まとめ
PandasのCustomBusinessHour.nプロパティを使えば、オフセットに適用された増分の数を簡単に取得できます。weekmaskと組み合わせることで、企業独自の営業カレンダーに合わせた柔軟な日時計算が可能になります。勤怠管理や業務スケジュールの自動計算など、ビジネスシーンでの時系列データ処理にぜひ活用してください。
-
Python・Pandas入門:オフセットオブジェクトに適用された頻度の名前を取得する方法
Pandasでオフセット(DateOffset)オブジェクトに適用されている頻度の名前を取得するには、offset.name プロパティを使用します。この記事では、具体的なコード例とともにその使い方を解説します。必要なライブラリのインポートまず、必要なライブラリをインポートします。from pandas.tseries.frequencies import to_offset import pandas as pdタイムスタンプの作成Pandasでタイムスタンプオブジェクトを設定します。timestamp = pd.Timestamp(2021-09-26 03:25:02.000045)Da
-
Python Pandas – 指定したDateOffsetオブジェクトに適用された頻度を返す方法
Pandasで指定されたDateOffsetオブジェクトに適用されている頻度を取得するには、offset.freqstr属性を使用します。この属性は、DateOffsetオブジェクトに設定された頻度を「5D」のような文字列形式で返してくれます。また、to_offset()関数を使うことで、頻度を表す文字列からDateOffsetオブジェクトを簡単に生成できます。 まず、必要なライブラリをインポートしましょう。 from pandas.tseries.frequencies import to_offset import pandas as pd 次に、Pandasでタイムスタンプオブジェクトを