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

Python Pandas - floor()メソッドで指定した解像度に切り下げた新しいTimedeltaを返す方法

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

Timedelta.floor()メソッドとは

floor()は、Timedeltaの値を指定した周波数(freq)の単位に「床関数的に」切り下げるメソッドです。例えば「6日と1分30秒」という時間差を「日」単位に切り下げると、「6日00:00:00」になります。元のオブジェクトは変更されず、切り下げられた新しいTimedeltaが返される点に注意してください。

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

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

import pandas as pd

TimeDeltasはPythonの標準的なdatetimeライブラリで使用される表現形式の一つで、日付や時刻の差(時間差)を扱うために使われます。

Timedeltaオブジェクトの作成

次に、Timedeltaオブジェクトを作成します。

timedelta = pd.Timedelta('6 days 1 min 30 s')

作成したTimedeltaを表示します。

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

「日」単位に切り下げる

freqパラメータに'D'(日)を指定して、Timedeltaを日単位に切り下げます。

timedelta.floor(freq='D')

完全なコード例

以下に全体のコードを示します。

import pandas as pd

# TimeDeltasはPythonの標準datetimeライブラリで使用される
# 時間差の表現形式の一つ
# Timedeltaオブジェクトを作成
timedelta = pd.Timedelta('6 days 1 min 30 s')

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

# 「日」単位に切り下げた結果を取得
res = timedelta.floor(freq='D')

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

実行結果

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

Timedelta...
6 days 00:01:30

Timedelta (floored)...
6 days 00:00:00

このように、元のTimedelta「6 days 00:01:30」から、1分30秒の部分が切り捨てられ、「6 days 00:00:00」という新しいTimedeltaが返されていることが確認できます。

補足:他の解像度での切り下げ

freqパラメータには、'D'(日)以外にも以下のような値を指定できます。

  • 'H':時間単位に切り下げ
  • 'T' または 'min':分単位に切り下げ
  • 'S':秒単位に切り下げ

例えば、freq='H'を指定した場合、「6 days 00:01:30」は「6 days 00:00:00」に切り下げられます。同様に、ceil()メソッドを使えば切り上げ、round()メソッドを使えば四捨五入した結果を取得することも可能です。

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

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

  2. Python Pandas – ナノ秒単位のnumpy timedelta64配列スカラービューを返す方法

    Pandasでナノ秒(nanoseconds)単位のnumpy timedelta64配列スカラービューを取得するには、timedelta.asm8プロパティを使用します。このプロパティを使うことで、Timedeltaオブジェクトをnumpyのtimedelta64型のスカラー値として簡単に参照できます。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdサンプルコード以下が実際のコード例です。 import pandas as pd # TimeDeltasはPython標準のdatetimeライブラリとは異なる表現を使用します #