Python Pandas入門:マイクロ秒の頻度でTimeDeltaIndexオブジェクトにceil操作を実行する方法
TimeDeltaIndexオブジェクトに対してマイクロ秒の頻度でceil(切り上げ)操作を行うには、TimeDeltaIndex.ceil()メソッドを使用します。マイクロ秒の頻度を指定する場合は、freqパラメータに'us'を設定します。
ceil操作とは、指定した頻度の単位に対して、値を切り上げる処理のことです。例えばナノ秒単位の値をマイクロ秒単位に切り上げることで、データを一定の粒度で整えることができます。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
TimeDeltaIndexオブジェクトの作成
次に、TimeDeltaIndexオブジェクトを作成します。ここでは「data」パラメータを使ってtimedelta形式のデータを設定しています。
tdIndex = pd.TimedeltaIndex(data =['4 day 8h 20min 35us 45ns', '+17:42:19.999999', '9 day 3h 08:16:02.000055', '+22:35:25.000075'])
作成したTimeDeltaIndexを表示してみましょう。
print("TimedeltaIndex...\n", tdIndex)マイクロ秒の頻度でceil操作を実行する
TimeDeltaIndexに対して、マイクロ秒の頻度でceil操作を実行します。マイクロ秒の頻度を指定するために、freqパラメータには「'us'」を使用します。
print("\nPerforming Ceil operation with microseconds frequency...\n",
tdIndex.ceil(freq='us'))完全なコード例
以下が全体のコードです。
import pandas as pd
# TimeDeltaIndexオブジェクトを作成
# 「data」パラメータを使ってtimedelta形式のデータを設定
tdIndex = pd.TimedeltaIndex(data =['4 day 8h 20min 35us 45ns', '+17:42:19.999999',
'9 day 3h 08:16:02.000055', '+22:35:25.000075'])
# TimeDeltaIndexを表示
print("TimedeltaIndex...\n", tdIndex)
# TimeDeltaの各構成要素をDataFrameとして返す
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)
# マイクロ秒の頻度でceil操作を実行
# マイクロ秒の頻度には「'us'」を使用
print("\nPerforming Ceil operation with microseconds frequency...\n",
tdIndex.ceil(freq='us'))実行結果
上記のコードを実行すると、以下のような出力が得られます。
TimedeltaIndex... TimedeltaIndex(['4 days 08:20:00.000035045', '0 days 17:42:19.999999', '9 days 11:16:02.000055', '0 days 22:35:25.000075'], dtype='timedelta64[ns]', freq=None) The Dataframe of the components of TimeDeltas... days hours minutes seconds milliseconds microseconds nanoseconds 0 4 8 20 0 0 35 45 1 0 17 42 19 999 999 0 2 9 11 16 2 0 55 0 3 0 22 35 25 0 75 0 Performing Ceil operation with microseconds frequency... TimedeltaIndex(['4 days 08:20:00.000036', '0 days 17:42:19.999999', '9 days 11:16:02.000055', '0 days 22:35:25.000075'], dtype='timedelta64[ns]', freq=None)
結果のポイント
出力結果を見ると、最初の要素「4 days 08:20:00.000035045」は、マイクロ秒単位で切り上げられて「4 days 08:20:00.000036」になっていることがわかります。これは、45ナノ秒の端数が切り上げられたためです。一方、すでにマイクロ秒単位できっちり収まっている他の要素(例えば「0 days 17:42:19.999999」など)は、そのまま変更されずに出力されています。
このように、ceil()メソッドとfreqパラメータを組み合わせることで、時刻差分データを任意の時間単位(秒・ミリ秒・マイクロ秒など)で簡単に切り上げることができます。同様に、floor()メソッドで切り捨て、round()メソッドで四捨五入も可能なので、用途に応じて使い分けると便利です。
-
Python Pandas入門:DateTimeIndexに対して分単位の頻度でフロア操作を実行する方法
DateTimeIndexに対して分単位(minute)の頻度でフロア操作を実行するには、DateTimeIndex.floor()メソッドを使用します。分単位の頻度を指定する場合は、freqパラメータにTを設定します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdDatetimeIndexの作成次に、5つの要素を持ち、頻度が秒単位(40S=40秒間隔)のDatetimeIndexを作成します。タイムゾーンは「Australia/Adelaide」に設定しています。datetimeindex = pd.date_range(2021
-
Python Pandas – DateTimeIndexに対して1時間ごとの頻度でfloor(切り下げ)操作を実行する方法
DateTimeIndexに対して1時間ごとの頻度でfloor(切り下げ)操作を実行するには、DateTimeIndex.floor()メソッドを使用します。1時間ごとの頻度を指定する場合は、freqパラメータにH(時間)を設定します。まず、必要なライブラリをインポートします。import pandas as pd次に、期間数を5、頻度を20分(20min)、タイムゾーンを「Australia/Adelaide」としてDatetimeIndexを作成します。datetimeindex = pd.date_range(2021-09-29 07:20:32.261811624, periods=