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

Python Pandas:Timedeltaを日単位の解像度に切り下げるfloor()メソッドの使い方

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

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

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

import pandas as pd

Timedeltaオブジェクトの作成

TimeDeltasは、Python標準のdatetimeライブラリで使用されるtimedeltaの表現形式です。ここでは例として、次のようにTimedeltaオブジェクトを作成します。

timedelta = pd.Timedelta('5 days 10 min 25 s')

作成したTimedeltaを表示してみましょう。

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

日単位の解像度で切り下げる

freq='D'を指定してfloor()メソッドを呼び出すと、日単位の解像度に切り下げられた結果が返されます。

timedelta.floor(freq='D')

コード例全体

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

import pandas as pd

# TimeDeltasはPython標準のdatetimeライブラリで使用されるtimedeltaの表現形式です
# Timedeltaオブジェクトを作成
timedelta = pd.Timedelta('5 days 10 min 25 s')

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

# 日単位の解像度で切り下げた結果を取得
res = timedelta.floor(freq='D')

# 切り下げ後のTimedeltaを表示
print("\nTimedelta (daily floored)...\n", res)

実行結果

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

Timedelta...
5 days 00:10:25

Timedelta (daily floored)...
5 days 00:00:00

結果の解説

元のTimedeltaは「5日と10分25秒」ですが、日単位(D)で切り下げると、日未満の時刻部分である「10分25秒」が切り捨てられ、「5 days 00:00:00」という結果になります。このようにfloor()メソッドを使えば、時間データを任意の単位で整理したい場合に便利です。

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