Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas – 1時間ごとの頻度でTimeDeltaIndexオブジェクトにceil操作を実行する方法

TimeDeltaIndexオブジェクトに対して1時間ごとの頻度でceil(切り上げ)操作を行うには、TimeDeltaIndex.ceil()メソッドを使用します。1時間ごとの頻度を指定する場合は、freqパラメータに'H'を設定します。

なお、最近のPandasのバージョンでは大文字の'H'は非推奨となっており、小文字の'h'を使用することが推奨されています。本記事では元のコードに沿って'H'を使用していますが、環境によっては'h'に置き換えてください。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

TimeDeltaIndexオブジェクトの作成

次に、TimeDeltaIndexオブジェクトを作成します。timedelta形式のデータは'data'パラメータで指定します。

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の表示

作成したTimedeltaIndexを表示して確認します。

print("TimedeltaIndex...\n", tdIndex)

1時間ごとの頻度でceil操作を実行

freq='H'を指定して、TimeDeltaIndexの各要素を1時間単位で切り上げます。

print("\nPerforming Ceil operation with hourly frequency...\n",
tdIndex.ceil(freq='H'))

完全なコード例

以下が全体のコードです。

import pandas as pd

# TimeDeltaIndexオブジェクトを作成
# timedelta形式のデータは'data'パラメータで設定
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の構成要素をデータフレームとして返す
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# 1時間ごとの頻度でceil操作を実行
# 1時間ごとの頻度には'H'を使用
print("\nPerforming Ceil operation with hourly frequency...\n",
tdIndex.ceil(freq='H'))

出力結果

上記のコードを実行すると、以下のような出力が得られます。

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 hourly frequency...
TimedeltaIndex(['4 days 09:00:00', '0 days 18:00:00', '9 days 12:00:00',
'0 days 23:00:00'],
dtype='timedelta64[ns]', freq=None)

解説

出力結果を見ると、各timedelta値が直近の「1時間」の区切りに切り上げられていることがわかります。例えば、「4日8時間20分」は「4日9時間00分00秒」へ、「17時間42分19.999999秒」は「18時間00分00秒」へと切り上げられています。このようにceil()メソッドを使うことで、timedeltaデータを任意の頻度単位で簡単に丸めることができます。

  1. 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=

  2. Python PandasでTimedeltaを1時間単位の頻度で丸める方法

    Timedeltaを指定した解像度(頻度)で丸めたい場合は、timestamp.round()メソッドを使用します。1時間ごとの頻度で丸めるには、freqパラメータに「H」を指定します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdTimedeltaオブジェクトの作成TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、pd.Timedelta()を使ってTimedeltaオブジェクトを作成します。timedelta = pd.Timedelta