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

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」(日)なども指定可能です。

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

  2. 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) 作成したタイム