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

Python Pandas – Timedeltaをミリ秒の解像度で切り上げて返す方法

Pandasのtimedelta.ceil()メソッドを使うと、指定した解像度に切り上げた新しいTimedeltaオブジェクトを取得できます。ミリ秒単位で切り上げたい場合は、freqパラメータに「ms」を指定します。

必要なライブラリのインポート

まず、必要なライブラリをインポートしましょう。

import pandas as pd

Timedeltaオブジェクトの作成

TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaの表現形式です。ここでは、日数・時間・分・秒・ミリ秒・ナノ秒を含む文字列からTimedeltaオブジェクトを作成します。

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

Timedeltaの表示

作成したTimedeltaオブジェクトを確認してみます。

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

ミリ秒の解像度で切り上げる

freq='ms'を指定して、ミリ秒の解像度で切り上げたTimedeltaを返します。元の値が「35ms 55ns」であるため、55ナノ秒が切り上げられ、36ミリ秒になります。

timedelta.ceil(freq='ms')

コード例全体

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

import pandas as pd

# TimeDeltasはPython標準のdatetimeライブラリにおけるtimedeltaの表現形式
# Timedeltaオブジェクトを作成
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

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

# ミリ秒の解像度で切り上げたTimedeltaを取得
res = timedelta.ceil(freq='ms')

# 切り上げ後のTimedeltaを表示
print("\nTimedelta (milliseconds ceiled)...\n", res)

出力結果

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (milliseconds ceiled)...
2 days 10:45:20.036000

このように、ceil()メソッドにfreq='ms'を渡すことで、ナノ秒以下の端数がミリ秒単位に切り上げられた新しいTimedeltaを簡単に取得できます。同様の操作として、切り捨てにはfloor()、四捨五入にはround()メソッドも用意されています。

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

    指定した解像度(頻度)に切り上げた新しい Timedelta を返すには、timedelta.ceil() メソッドを使用します。切り上げの単位は、freq パラメータで指定します。まず、必要なライブラリをインポートします。import pandas as pdTimeDeltas は、Python の標準 datetime ライブラリで使用される timedelta とは異なる表現形式を持っています。ここでは、pd.Timedelta を使って Timedelta オブジェクトを作成します。timedelta = pd.Timedelta(6 days 1 min 30 s)作成した Tim

  2. Python Pandas – Timedeltaからnamedtuple形式のコンポーネントを取得する方法

    PandasのTimedeltaオブジェクトから、namedtuple(名前付きタプル)形式で時間の構成要素を取得するには、timedelta.components属性を使用します。この属性を使うことで、日数・時間・分・秒・ミリ秒・マイクロ秒・ナノ秒といった各単位に分解された値を、属性アクセス可能な形で簡単に取り出せます。まずは、必要なライブラリをインポートしましょう。import pandas as pdTimedeltaオブジェクトの作成TimeDeltaは、Python標準のdatetimeライブラリが持つtimedeltaとは異なる独自の表現形式を採用しており、より高精度な時間差の計算