Python PandasでTimedeltaを1時間単位の頻度で丸める方法
Timedeltaを指定した解像度(頻度)で丸めたい場合は、timestamp.round()メソッドを使用します。1時間ごとの頻度で丸めるには、freqパラメータに「H」を指定します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
Timedeltaオブジェクトの作成
TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、pd.Timedelta()を使ってTimedeltaオブジェクトを作成します。
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')Timedeltaの表示
作成したTimedeltaオブジェクトを表示してみましょう。
print("Timedelta...\n", timedelta)1時間単位で丸める
round()メソッドにfreq='H'を指定すると、Timedeltaを1時間単位の解像度で丸めた結果を取得できます。この例では「2 days 10:45:20」が最も近い時間である「2 days 11:00:00」に丸められます。
res = timedelta.round(freq='H')
完全なコード例
以下は、これまでの手順をまとめたサンプルコードです。
import pandas as pd
# Timedeltaオブジェクトを作成
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')
# Timedeltaを表示
print("Timedelta...\n", timedelta)
# freqパラメータで1時間(H)の解像度を指定して丸める
res = timedelta.round(freq='H')
# 丸めた結果を表示
print("\nTimedelta (hourly rounded)...\n", res)実行結果
上記のコードを実行すると、次のような出力が得られます。
Timedelta... 2 days 10:45:20.035000055 Timedelta (hourly rounded)... 2 days 11:00:00
このように、round()メソッドとfreqパラメータを組み合わせることで、Timedeltaを任意の時間単位(分・時間・日など)で簡単に丸めることができます。freqには「T」(分)や「D」(日)なども指定可能です。
-
Python Pandas – 1時間単位の解像度に切り下げた新しいTimedeltaを返す方法
指定した解像度に切り下げた(フロア処理した)新しいTimedeltaを返すには、timedelta.floor()メソッドを使用します。1時間単位の解像度に切り下げたい場合は、freqパラメータに「H」を指定します。必要なライブラリのインポートまず、pandasをインポートします。import pandas as pdTimeDeltasは、Pythonの標準datetimeライブラリで扱われるtimedeltaの表現形式です。ここでは、Timedeltaオブジェクトを作成します。timedelta = pd.Timedelta(4 days 10 hours 2 min 45 s)作成したT
-
Python Pandas – 指定したタイムスタンプを1時間ごとの頻度で期間(Period)に変換する方法
Pandasでタイムスタンプ(Timestamp)を期間(Period)に変換するには、timestamp.to_period()メソッドを使用します。このメソッドのfreqパラメータで頻度を指定することができ、1時間ごとの頻度に変換したい場合は「H」を設定します。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd タイムスタンプオブジェクトの作成 次に、Pandasでタイムスタンプオブジェクトを作成します。 timestamp = pd.Timestamp(2021, 9, 18, 11, 50, 20, 33) 作成したタイム