Python Pandas – CustomBusinessHourオフセットが正規化されているかどうかを確認する方法
CustomBusinessHourオフセットが正規化(normalize)されているかどうかを確認するには、Pandasの CustomBusinessHour.normalize プロパティを使用します。このプロパティは、オフセット作成時に「normalize」パラメータが指定されているかどうかを真偽値で返します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
タイムスタンプの設定
Pandasでタイムスタンプオブジェクトを作成します。
timestamp = pd.Timestamp('2021-10-25 08:35:10')CustomBusinessHourオフセットの作成
次に、CustomBusinessHourオフセットを作成します。CustomBusinessHourはDateOffsetのサブクラスであり、営業時間に基づいた日時の計算を行うことができます。ここでは、「normalize」パラメータを使用して正規化を有効にしています。
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 3, weekmask = 'Mon Tue Wed Fri Sat', normalize=True)
「weekmask」パラメータには有効な営業日を指定します。この例では、月曜・火曜・水曜・金曜・土曜が営業日として設定されています。
オフセットの適用と結果の表示
タイムスタンプにオフセットを加算し、更新されたタイムスタンプを表示します。
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)そして、CustomBusinessHourオフセットが正規化されているかどうかを確認します。
print("\nThe CustomBusinessHour Offset is normalized ?\n", cbhOffset.normalize)完全なコード例
以下に全体のコードを示します。
import pandas as pd
# タイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-10-25 08:35:10')
# タイムスタンプを表示
print("Timestamp...\n", timestamp)
# CustomBusinessHourオフセットを作成
# CustomBusinessHourはDateOffsetのサブクラス
# weekmaskで有効な営業日を指定
# 「normalize」パラメータで正規化を有効化
cbhOffset = pd.tseries.offsets.CustomBusinessHour(n = 3, weekmask = 'Mon Tue Wed Fri Sat', normalize=True)
# CustomBusinessHourオフセットを表示
print("\nCustomBusinessHour Offset...\n", cbhOffset)
# オフセットを適用した更新後のタイムスタンプを表示
print("\nUpdated Timestamp...\n", timestamp + cbhOffset)
# 適用されている頻度を文字列として返す
print("\nFrequency applied on the given CustomBusinessHour Offset object...\n", cbhOffset.freqstr)
# 頻度の名前を返す
print("\nThe name of the frequency on the CustomBusinessHour object..\n", cbhOffset.name)
# オフセットが正規化されているかどうかを確認
print("\nThe CustomBusinessHour Offset is normalized ?\n", cbhOffset.normalize)実行結果
上記のコードを実行すると、以下の出力が得られます。
Timestamp... 2021-10-25 08:35:10 CustomBusinessHour Offset... <3 * CustomBusinessHours: CBH=09:00-17:00> Updated Timestamp... 2021-10-25 00:00:00 Frequency applied on the given CustomBusinessHour Offset object... 3CBH The name of the frequency on the CustomBusinessHour object.. CBH The CustomBusinessHour Offset is normalized ? True
解説
実行結果からわかるように、normalize=True を指定してCustomBusinessHourオフセットを作成したため、cbhOffset.normalize プロパティは True を返します。また、normalizeが有効になっているため、元のタイムスタンプ「2021-10-25 08:35:10」にオフセットを適用すると、時刻部分がリセットされ「2021-10-25 00:00:00」という日付の始まりの時刻に正規化されています。もしnormalizeを指定しなければ、Falseが返され、時刻もそのまま維持されます。
-
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 を用意します。 関数