Python Pandas入門:DateOffset値が正規化(normalize)されているかどうかを確認する方法
PandasでDateOffsetオフセット値が正規化(normalize)されているかどうかを確認するには、offset.normalize プロパティを使用します。このプロパティは、DateOffsetオブジェクトの作成時に normalize=True が指定されているかどうかをブール値(True / False)で返します。
DateOffsetの正規化確認の手順
まず、必要なライブラリをインポートします。
from pandas.tseries.offsets import DateOffset import pandas as pd
Pandasでタイムスタンプオブジェクトを設定します。
timestamp = pd.Timestamp('2021-09-26 03:25:02.000045')
次に、DateOffsetを作成します。ここでは「months」パラメータを使用して月数を加算しています。さらに、「normalize」パラメータにTrueを指定することで、DateOffsetを正規化しています。
offset = pd.tseries.offsets.DateOffset(months=4, normalize=True)
更新されたタイムスタンプを表示します。
print("\nUpdated Timestamp...\n", timestamp + offset)
DateOffsetが正規化されているかどうかを確認します。
print("\nThe DateOffset is normalized..\n", offset.normalize)
サンプルコード
以下に完全なコード例を示します。
from pandas.tseries.offsets import DateOffset
import pandas as pd
# Pandasでタイムスタンプオブジェクトを設定
timestamp = pd.Timestamp('2021-09-26 03:25:02.000045')
# タイムスタンプを表示
print("Timestamp...\n", timestamp)
# DateOffsetを作成
# 「months」パラメータで月数を加算
# 「normalize」パラメータでDateOffsetを正規化
offset = pd.tseries.offsets.DateOffset(months=4, normalize=True)
# DateOffsetを表示
print("\nDateOffset...\n", offset)
# 更新されたタイムスタンプを表示
print("\nUpdated Timestamp...\n", timestamp + offset)
# DateOffsetが正規化されているかどうかを確認
print("\nThe DateOffset is normalized..\n", offset.normalize)
実行結果
上記のコードを実行すると、以下のような出力が得られます。
Timestamp... 2021-09-26 03:25:02.000045 DateOffset... <DateOffset: months=4> Updated Timestamp... 2022-01-26 00:00:00 The DateOffset is normalized.. True
ポイント解説
normalize=True を指定した場合、タイムスタンプにDateOffsetを加算すると、時刻部分が午前0時(00:00:00)に丸められます。上記の出力を見ると、元のタイムスタンプは「03:25:02.000045」という時刻を持っていましたが、更新後のタイムスタンプは「2022-01-26 00:00:00」となり、時刻情報がリセットされていることがわかります。
また、offset.normalize プロパティは True を返すため、このDateOffsetが正規化設定になっていることが確認できます。normalize=False(デフォルト)の場合は、時刻部分はそのまま保持されます。
-
Pythonで与えられた数値がユークリッド数(Euclid Number)かどうかを判定する方法
ユークリッド数とは? ある整数 n が与えられたとき、それがユークリッド数であるかどうかを判定することを考えます。ユークリッド数とは、次の式で表すことができる整数のことです。 n = Pn + 1 ここで Pn は「最初の n 個の素数の積」を意味します。 例として、入力が n = 211 の場合を考えてみましょう。211 は次のように表せるため、出力は True になります。 211 = (2 × 3 × 5 × 7) + 1 解決のためのアプローチ この問題は、以下の手順で解くことができます。 上限値 MAX を 10000 に設定し、空の素数リスト primes を用意します。 関数
-
Pythonで文字列の平均文字が存在するかどうかを確認する方法
英数字を含む文字列 s が与えられたとき、その文字列の「平均文字」が存在するかどうかを判定し、存在する場合はその文字を返すプログラムを作成します。ここでいう平均文字とは、文字列内の各文字のASCII値の平均を計算し、その小数点以下を切り捨てた値に対応する文字のことです。 問題の例 例えば、入力が s = pqrst の場合、出力は r になります。これは、各文字のASCII値の平均が以下のように計算されるためです。 (112 + 113 + 114 + 115 + 116) / 5 = 570 / 5 = 114 ASCII値 114 に対応する文字は r なので、答えは r となります。 解