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

Python Pandas - Timedelta(タイムデルタ)を秒単位で丸める方法

PandasでTimedelta(タイムデルタ)を指定した解像度に丸めるには、round()メソッドを使用します。秒単位の頻度で丸めたい場合は、freqパラメータに's'を指定します。

このメソッドは、ミリ秒やナノ秒などの細かい端数を切り捨て、指定した頻度に最も近い値へと丸めてくれます。時刻データの前処理や集計において非常に便利な機能です。

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

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

import pandas as pd

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

日・時間・分・秒・ミリ秒・ナノ秒を含むTimedeltaオブジェクトを作成します。

timedelta = pd.Timedelta('1 days 11 hours 22 min 25 s 50 ms 45 ns')

手順3:Timedeltaを表示する

print("Timedelta...\n", timedelta)

手順4:秒単位の頻度で丸める

freqパラメータに's'を指定して、秒の解像度で丸めた結果を取得します。これにより、50ms 45nsといった端数が丸められます。

res = timedelta.round(freq='s')

完全なサンプルコード

以下が実際のコード例です。

import pandas as pd

# Timedeltaオブジェクトを作成
# Python標準のdatetimeライブラリとは異なる表現を持つタイムデルタです
timedelta = pd.Timedelta('1 days 11 hours 22 min 25 s 50 ms 45 ns')

# Timedeltaを表示
print("Timedelta...\n", timedelta)

# freqパラメータで秒の解像度を指定し、丸めた結果を取得
res = timedelta.round(freq='s')

# 丸めた結果を表示
print("\nTimedelta (seconds rounded)...\n", res)

実行結果

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

Timedelta...
1 days 11:22:25.050000045

Timedelta (seconds rounded)...
1 days 11:22:25

補足:freqパラメータで指定できる主な値

freqパラメータには、's'(秒)以外にも以下のような値を指定できます。

  • 'H' または 'h':時間単位
  • 'T' または 'min':分単位
  • 'S' または 's':秒単位
  • 'L' または 'ms':ミリ秒単位
  • 'U' または 'us':マイクロ秒単位

このように、目的の精度に応じてfreqパラメータを使い分けることで、柔軟に時刻データを丸めることができます。

  1. Python Pandas - 秒単位の解像度に切り下げた新しいTimedeltaを返す方法

    Timedeltaを指定した解像度に切り下げた(floor)新しい値として返すには、timedelta.floor()メソッドを使用します。秒単位の解像度で切り下げる場合は、freqパラメータに「S」を指定します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdTimedeltaオブジェクトの作成TimeDeltasは、Pythonの標準的なdatetimeライブラリで使用される時間差(timedelta)の表現方法です。ここでは、Timedeltaオブジェクトを作成します。timedelta = pd.Timedelta(4 day

  2. Python Pandas – Timedeltaオブジェクトから秒の値を取得する方法

    Timedeltaオブジェクトから秒の値を取得するには、timedelta.seconds プロパティを使用します。この記事では、実際のコード例とともに、その使い方を詳しく解説します。必要なライブラリのインポートまず、pandasライブラリをインポートします。import pandas as pdTimedeltaオブジェクトとはTimeDeltasは、Pythonの標準datetimeライブラリにおける時間差(timedelta)を表すデータ型です。Pandasでは pd.Timedelta() を使って簡単に作成できます。ここでは、「10秒・15ミリ秒・33ナノ秒」のTimedeltaオブ