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パラメータを組み合わせることで、時系列データの前処理や表示フォーマットの統一などを簡単に行えます。
-
Python Pandas入門:ceil()メソッドで秒単位の解像度に切り上げた新しいTimedeltaを取得する方法
指定した解像度(精度)に切り上げた新しいTimedeltaを返すには、timedelta.ceil()メソッドを使用します。秒単位で切り上げたい場合は、freqパラメータに「S」を指定します。 必要なライブラリのインポート まず、pandasをインポートします。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、日・時間・分・秒・ミリ秒・ナノ秒を含むTimedeltaオブジェクトを作成してみましょう。 timedelta =
-
Python Pandas – 指定した解像度に切り上げた新しいTimedeltaを返す方法
Pandasのtimedelta.ceil()メソッドを使用すると、指定した解像度に切り上げた新しいTimedeltaオブジェクトを取得できます。分単位で切り上げたい場合は、freqパラメータに「T」を指定します。 必要なライブラリのインポート まず、必要なライブラリをインポートしましょう。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、Timedeltaオブジェクトを作成します。 timedelta = pd.Time