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

Python Pandas入門:floor()メソッドでTimedeltaをミリ秒単位に切り下げる方法

PandasでTimedeltaオブジェクトを指定した解像度に切り下げた(フロア処理した)新しい値を取得するには、timedelta.floor()メソッドを使用します。ミリ秒単位で切り下げたい場合は、freqパラメータに「ms」を指定します。

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

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

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)

ミリ秒解像度へのフロア処理

floor()メソッドにfreq='ms'を渡すことで、ミリ秒より細かい単位(マイクロ秒・ナノ秒)が切り下げられた新しいTimedeltaを返します。

timedelta.floor(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)

# freq='ms'を指定して
# ミリ秒解像度でフロア処理したTimedeltaを取得
res = timedelta.floor(freq='ms')

# 結果を表示
print("\nTimedelta (milliseconds floored)...\n", res)

出力結果

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (milliseconds floored)...
2 days 10:45:20.035000

元のTimedeltaには55ナノ秒が含まれていましたが、floor(freq='ms')を適用することで、ナノ秒部分が切り下げられ、ミリ秒単位までの値になっていることが確認できます。

  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とは異なる独自の表現形式を採用しており、より高精度な時間差の計算