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

Python Pandas入門:TimeDeltaIndexを時間単位(1時間ごと)の頻度で丸める方法

PandasのTimeDeltaIndex.round()メソッドを使用すると、TimeDeltaIndexの各値を指定した頻度に丸めることができます。時間単位(1時間ごと)の頻度で丸めたい場合は、freqパラメータに'H'を指定します。

手順1:必要なライブラリをインポートする

まず、Pandasをインポートします。

import pandas as pd

手順2:TimeDeltaIndexオブジェクトを作成する

次に、dataパラメータを使ってtimedelta形式のデータを設定し、TimeDeltaIndexオブジェクトを作成します。

tdIndex = pd.TimedeltaIndex(data =['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
'2 day 4h 03:08:02.000045', '+21:15:45.999999'])

手順3:TimeDeltaIndexを表示する

作成したTimeDeltaIndexの中身を確認してみましょう。

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

手順4:時間単位の頻度で丸め処理を実行する

freq='H'を指定してround()メソッドを呼び出すと、各Timedeltaの値が直近の1時間単位の値に丸められます。分や秒以下の情報は切り捨てられるか、切り上げられるかは、直近の時刻に近い方へ自動的に判定されます。

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

完全なコード例

以下に、ここまでの手順をまとめた完全なコードを示します。

import pandas as pd

# TimeDeltaIndexオブジェクトを作成
# dataパラメータでtimedelta形式のデータを設定
tdIndex = pd.TimedeltaIndex(data =['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
'2 day 4h 03:08:02.000045', '+21:15:45.999999'])

# TimeDeltaIndexを表示
print("TimedeltaIndex...\n", tdIndex)

# Timedeltaの構成要素(日・時・分・秒など)をDataFrameとして返す
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# 時間単位の頻度で丸め処理を実行
# 時間単位の場合は freq='H' を指定
print("\nPerforming round operation with hourly frequency...\n",
tdIndex.round(freq='H'))

実行結果

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

TimedeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
'2 days 07:08:02.000045', '0 days 21:15:45.999999'],
dtype='timedelta64[ns]', freq=None)

The Dataframe of the components of TimeDeltas...
    days  hours minutes seconds milliseconds microseconds nanoseconds
0   10     5      2      0        0          3            10
1    0    22     39     19      999        999             0
2    2     7      8      2        0         45             0
3    0    21     15     45      999        999             0

Performing round operation with hourly frequency...
TimedeltaIndex(['10 days 05:00:00', '0 days 23:00:00', '2 days 07:00:00',
'0 days 21:00:00'],
dtype='timedelta64[ns]', freq=None)

補足:その他の頻度指定について

freqパラメータには、'H'(時間)以外にもさまざまな値を指定できます。たとえば、'T'または'min'で分単位、'S'で秒単位、'D'で日単位の丸めが可能です。また、四捨五入ではなく切り下げたい場合はfloor()メソッド、切り上げたい場合はceil()メソッドを同じ要領で使用できます。用途に応じて使い分けると便利です。

  1. Python Pandas入門:タイムデルタを分単位の頻度で丸める方法

    タイムデルタ(Timedelta)を指定した解像度で丸めるには、round() メソッドを使用します。分単位の頻度で丸めたい場合は、freq パラメータに T を指定します。 必要なライブラリのインポート まず、pandas をインポートします。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltas は、Python の標準的な datetime ライブラリで使われる timedelta とは異なる表現を持ちます。ここでは、日・時・分・秒・ミリ秒・ナノ秒を含む Timedelta オブジェクトを作成します。 timedelta = pd.Timed

  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