Python PandasでBusinessHourオフセットを作成する方法
Pandasで営業時間(ビジネスアワー)を基準とした日時計算を行いたい場合、pd.tseries.offsets.BusinessHour()メソッドを使用すると、独自の営業時間に合わせたオフセットを簡単に作成できます。本記事では、BusinessHourオフセットの基本的な作成方法から、タイムスタンプへの適用までを具体的なコード例とともに解説します。
必要なライブラリのインポート
まずは、Pandasをインポートします。
import pandas as pd
BusinessHourオフセットの作成手順
1. オフセットオブジェクトの生成
BusinessHourはDateOffsetクラスのサブクラスであり、営業時間を考慮した日付計算を実現します。startパラメータには営業開始時刻を、endパラメータには営業終了時刻を、それぞれ24時間形式の文字列で指定します。
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")
上記の例では、午前9時30分から午後6時までを営業時間として設定しています。デフォルトでは9:00〜17:00が設定されるため、独自の勤務体系に合わせて柔軟に変更できる点が特徴です。
2. タイムスタンプの設定
次に、オフセットを適用する対象となるTimestampオブジェクトを作成します。
timestamp = pd.Timestamp('2021-1-1 01:55:30')
3. オフセットの適用と結果の表示
作成したオフセットをタイムスタンプに加算し、更新後の日時を表示します。
print("\nUpdated Timestamp...\n", timestamp + bhOffset)
なお、元のタイムスタンプが営業時間外の場合、加算結果は自動的に直近の営業開始時刻へと調整されます。この挙動により、営業日ベースの正確なスケジュール計算が可能になります。
完全なコード例
ここまでの手順をまとめたコード全体は以下の通りです。
import pandas as pd
# Pandasでタイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-1-1 01:55:30')
# タイムスタンプを表示
print("Timestamp...\n", timestamp)
# BusinessHourオフセットを作成
# BusinessHourはDateOffsetクラスのサブクラス
# start:営業開始時刻(24時間形式)
# end:営業終了時刻(24時間形式)
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end="18:00")
# BusinessHourオフセットを表示
print("\nBusinessHour Offset...\n", bhOffset)
# オフセットをタイムスタンプに加算し、更新後の日時を表示
print("\nUpdated Timestamp...\n", timestamp + bhOffset)
実行結果
上記のコードを実行すると、以下のような出力が得られます。
Timestamp...
2021-01-01 01:55:30
BusinessHour Offset...
<BusinessHour: BH=09:30-18:00>
Updated Timestamp...
2021-01-01 10:30:00
出力結果を見ると、元のタイムスタンプ「2021-01-01 01:55:30」は営業時間外(深夜)であるため、オフセット適用後は設定した営業開始時刻「09:30」を基準に計算され、「2021-01-01 10:30:00」という結果になっています。このようにBusinessHourオフセットを活用することで、金融市場や顧客対応など、営業時間を考慮した日時処理を正確に行えます。
-
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
-
【Pandas入門】Pythonでタイムスタンプを比較する方法をわかりやすく解説
はじめに:Pandasでのタイムスタンプ比較の基本 データ分析の現場では、日付や時刻のデータ(タイムスタンプ)を扱う場面が非常に多くあります。例えば「購入日と整備日の差は何日か」「特定の日付以降のレコードだけを抽出したい」といったケースです。 Pandasでは、インデックス演算子(角括弧 [])を使って列にアクセスし、タイムスタンプ同士を直接比較・差分計算することができます。この記事では、具体的なサンプルコードを通じて、その方法をわかりやすく解説します。 1. ライブラリのインポート まず、必要なライブラリであるPandasをインポートします。 import pandas as pd 2.