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

Python Pandas入門:CustomBusinessHour.freqstrでオフセットの頻度を文字列として取得する方法

Pandasで指定されたCustomBusinessHourオフセットオブジェクトに適用されている頻度(frequency)を文字列として取得したい場合は、CustomBusinessHour.freqstrプロパティを使用します。このプロパティは、オフセットに設定された営業時間や曜日などの条件を含む頻度情報を、簡潔な文字列形式で返してくれます。

CustomBusinessHourとは

CustomBusinessHourは、PandasのDateOffsetクラスのサブクラスの一つです。標準的な営業時間(デフォルトでは9:00〜17:00)に加えて、weekmaskパラメータを使うことで、有効な営業日を柔軟にカスタマイズできます。例えば、「月・火・水・金のみを営業日とする」といった独自のビジネスカレンダーを簡単に定義できます。

実装手順

1. 必要なライブラリをインポートする

まず、必要なライブラリをインポートします。

import pandas as pd

2. タイムスタンプオブジェクトを設定する

Pandasでタイムスタンプオブジェクトを作成します。

timestamp = pd.Timestamp('2021-10-25 08:35:10')

3. CustomBusinessHourオフセットを作成する

ここでは、n=3(3営業時間のオフセット)と、営業日を「月・火・水・金」に限定するweekmaskを指定してオフセットを作成します。

cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 3, weekmask = 'Mon Tue Wed Fri')

4. オフセットを適用して結果を確認する

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

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

5. 頻度を文字列として取得する

freqstrプロパティを使って、指定されたCustomBusinessHourオフセットオブジェクトに適用される頻度を文字列として返します。

print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)

完全なサンプルコード

以下に、これまでの手順をまとめたコード全体を示します。

import pandas as pd

# Pandasでタイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-10-25 08:35:10')

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

# CustomBusinessHourオフセットを作成
# CustomBusinessHourはDateOffsetのサブクラス
# weekmaskで有効な営業日を指定
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 3, weekmask = 'Mon Tue Wed Fri')

# CustomBusinessHourオフセットを表示
print("\nCustomBusinessHour Offset...\n", cbhOffset)

# オフセットをタイムスタンプに加算し、更新されたタイムスタンプを表示
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)

# 指定されたCustomBusinessHourオフセットオブジェクトに適用される頻度を文字列として返す
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)

実行結果

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

Timestamp...
 2021-10-25 08:35:10

CustomBusinessHour Offset...
 <3 * CustomBusinessHours: CBH=09:00-17:00>

Updated Timestamp...
 2021-10-25 12:00:00

Frequency applied on the given CustomBusinessHour Offset object...
 3CBH

出力のポイント

この例では、元のタイムスタンプ「2021-10-25 08:35:10」に対して3営業時間のオフセットが適用され、営業開始時刻(9:00)から計算されて「2021-10-25 12:00:00」に更新されています。また、freqstrプロパティの出力である「3CBH」は、「3つのCustomBusinessHour」という頻度設定を表す文字列です。このように、freqstrを使えばオフセットの頻度設定をひと目で把握でき、ログ出力やデバッグの際にも便利です。

  1. Python Pandas – PeriodIndexオブジェクトから頻度オブジェクトを文字列として取得する方法

    PeriodIndexオブジェクトから頻度(frequency)オブジェクトを文字列として取得するには、PeriodIndex.freqstrプロパティを使用します。この記事では、実際のコード例を通じてその使い方をわかりやすく解説します。必要なライブラリのインポートまず、pandasライブラリをインポートします。import pandas as pdPeriodIndexオブジェクトの作成次に、PeriodIndexオブジェクトを作成します。PeriodIndexは、時間軸上の一定期間を示す序数値を保持する不変(immutable)なndarrayです。「freq」パラメータで頻度を指定できま

  2. Python Pandas - 指定したPeriodオブジェクトに適用された時系列頻度の文字列エイリアスを取得する方法

    指定したPeriodオブジェクトに適用されている時系列頻度(frequency)の文字列エイリアスを取得するには、period.freqstrプロパティを使用します。このプロパティは、Periodオブジェクトに設定された頻度を「<Second>」や「<YearEnd: month=12>」といった文字列表現で返します。必要なライブラリのインポートまず、pandasをインポートします。import pandas as pdpandas.Periodは、特定の期間(時間帯)を表すオブジェクトです。ここでは、2つのPeriodオブジェクトを作成してみましょう。period1