Python Pandas – BusinessHourオフセットが正規化されているか確認する方法
Pandasでは、BusinessHour.normalizeプロパティを使用することで、BusinessHourオフセットが正規化(normalize)されているかどうかを簡単に確認できます。この記事では、具体的なコード例とともにその手順を解説します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
タイムスタンプの設定
次に、Pandasでタイムスタンプオブジェクトを設定します。
timestamp = pd.Timestamp('2021-1-1 01:55:30')
BusinessHourオフセットの作成
BusinessHourオフセットを作成します。ここでは「normalize」パラメータを使って、BusinessHourを正規化しています。
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end = "18:00", normalize=True)
補足:BusinessHourはDateOffsetのサブクラスです。「start」はカスタム営業時間の開始時刻、「end」は終了時刻を24時間形式で指定します。
更新されたタイムスタンプの表示
オフセット適用後のタイムスタンプを表示します。
print("\nUpdated Timestamp...\n",timestamp + bhOffset)
正規化されているかどうかの確認
BusinessHourオフセットが正規化されているかどうかをチェックします。
print("\nThe BusinessHour Offset is normalized ?\n", bhOffset.normalize)
完全なコード例
以下に、これまでの手順をまとめた完全なコードを示します。
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時間形式)
# 「normalize」パラメータでBusinessHourを正規化
bhOffset = pd.tseries.offsets.BusinessHour(start="09:30", end = "18:00", normalize=True)
# BusinessHourオフセットを表示
print("\nBusinessHour Offset...\n",bhOffset)
# 更新されたタイムスタンプを表示
print("\nUpdated Timestamp...\n",timestamp + bhOffset)
# BusinessHourオフセットが正規化されているかどうかを確認
print("\nThe BusinessHour Offset is normalized ?\n", bhOffset.normalize)
実行結果
上記のコードを実行すると、次のような出力が得られます。
Timestamp... 2021-01-01 01:55:30 BusinessHour Offset... <BusinessHour: BH=09:30-18:00> Updated Timestamp... 2021-01-01 00:00:00 The BusinessHour Offset is normalized ? True
出力結果からわかるように、bhOffset.normalizeはTrueを返しており、BusinessHourオフセットが正規化されていることが確認できます。また、正規化によって更新後のタイムスタンプの時刻部分が「00:00:00」に丸められている点にも注目してください。
-
Pythonで指定した基数表現に0が連続して含まれるかどうかを判定する方法
プログラミングでは、ある数値を特定の基数(進法)で表したとき、その桁並びの中に「0」が連続して現れるかどうかを調べたいことがあります。本記事では、Pythonを使ってこの判定を行う方法を解説します。 実装の流れとしては、数値と基数を引数として受け取る関数を定義し、その内部で別の補助関数を呼び出すことで、条件を満たすかどうかに応じて「Yes」または「No」を出力します。 サンプルコード 0): res = False continue res = True return True N, K = 8, 2 print(Do
-
Pythonで与えられた数値がユークリッド数(Euclid Number)かどうかを判定する方法
ユークリッド数とは? ある整数 n が与えられたとき、それがユークリッド数であるかどうかを判定することを考えます。ユークリッド数とは、次の式で表すことができる整数のことです。 n = Pn + 1 ここで Pn は「最初の n 個の素数の積」を意味します。 例として、入力が n = 211 の場合を考えてみましょう。211 は次のように表せるため、出力は True になります。 211 = (2 × 3 × 5 × 7) + 1 解決のためのアプローチ この問題は、以下の手順で解くことができます。 上限値 MAX を 10000 に設定し、空の素数リスト primes を用意します。 関数