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

Python Pandas入門:Timedeltaを指定した解像度で丸める方法

PythonのPandasライブラリで、Timedelta(時間差)を指定した解像度に丸めたい場合は、timestamp.round()メソッドを使用します。丸めの精度(解像度)は、freqパラメータで自由に設定できます。

Timedeltaを丸める基本的な手順

1. 必要なライブラリをインポートする

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

import pandas as pd

2. Timedeltaオブジェクトを作成する

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

timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

3. Timedeltaを表示する

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

4. round()メソッドで丸める

round()メソッドにfreq='s'を指定すると、秒単位の解像度で丸められた結果が返されます。freqパラメータの値を変更すれば、「分」「時」「日」など、任意の精度で丸めることも可能です。

timedelta.round(freq='s')

サンプルコード全体

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

import pandas as pd

# Timedeltaは、Python標準のdatetimeライブラリにおける
# timedeltaとは異なる表現を持つデータ型です

# Timedeltaオブジェクトを作成
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

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

# freqパラメータで「秒」の解像度を指定して丸める
res = timedelta.round(freq='s')

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

実行結果

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (seconds rounded)...
2 days 10:45:20

元のTimedeltaにはナノ秒単位の値(55ns)まで含まれていましたが、freq='s'を指定することで、秒未満の情報が切り捨てられ、「2 days 10:45:20」というきれいな形式に丸められていることがわかります。このように、round()メソッドとfreqパラメータを組み合わせることで、時系列データの前処理や表示フォーマットの統一などを簡単に行えます。

  1. Python Pandas入門:ceil()メソッドで秒単位の解像度に切り上げた新しいTimedeltaを取得する方法

    指定した解像度(精度)に切り上げた新しいTimedeltaを返すには、timedelta.ceil()メソッドを使用します。秒単位で切り上げたい場合は、freqパラメータに「S」を指定します。 必要なライブラリのインポート まず、pandasをインポートします。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、日・時間・分・秒・ミリ秒・ナノ秒を含むTimedeltaオブジェクトを作成してみましょう。 timedelta =

  2. Python Pandas – 指定した解像度に切り上げた新しいTimedeltaを返す方法

    Pandasのtimedelta.ceil()メソッドを使用すると、指定した解像度に切り上げた新しいTimedeltaオブジェクトを取得できます。分単位で切り上げたい場合は、freqパラメータに「T」を指定します。 必要なライブラリのインポート まず、必要なライブラリをインポートしましょう。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、Timedeltaオブジェクトを作成します。 timedelta = pd.Time