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

Python Pandas入門:タイムデルタを分単位の頻度で丸める方法

タイムデルタ(Timedelta)を指定した解像度で丸めるには、round() メソッドを使用します。分単位の頻度で丸めたい場合は、freq パラメータに 'T' を指定します。

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

まず、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')

作成したタイムデルタを表示してみましょう。

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

分単位での丸め処理

分単位の頻度で丸めた結果を取得するには、freq パラメータに 'T'(分)を指定して round() メソッドを呼び出します。これにより、秒以下の値が切り捨てられ、分単位に整えられた結果が返されます。

timedelta.round(freq='T')

サンプルコード

以下に完全なコード例を示します。

import pandas as pd

# TimeDeltasはPython標準のdatetimeライブラリとは
# 異なる表現を持つtimedeltaです
# Timedeltaオブジェクトを作成
timedelta = pd.Timedelta('2 days 10 hours 45 min 20 s 35 ms 55 ns')

# タイムデルタを表示
print("Timedelta...\n", timedelta)

# 分単位の頻度で丸めた結果を取得
# freqパラメータで解像度を指定
res = timedelta.round(freq='T')

# 丸め後のタイムデルタを表示
print("\nTimedelta (minutely rounded)...\n", res)

実行結果

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

Timedelta...
2 days 10:45:20.035000055

Timedelta (minutely rounded)...
2 days 10:45:00

このように、元のタイムデルタ「2 days 10:45:20.035000055」に対して freq='T' を指定すると、秒以下の値が丸められ、「2 days 10:45:00」という分単位の結果が得られます。なお、'T' の代わりに 'min' を指定しても同じ結果になります。

  1. Python Pandasで分単位の解像度に切り下げた新しいTimedeltaを返す方法

    指定した解像度に切り下げ(フロア処理)した新しいTimedeltaを返すには、timedelta.floor()メソッドを使用します。分単位の解像度に切り下げたい場合は、freqパラメータに「T」(minuteのエイリアス)を指定します。まず、必要なライブラリをインポートしましょう。import pandas as pdTimeDeltaは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を採用しています。ここでは、Timedeltaオブジェクトを作成します。timedelta = pd.Timedelta(8 days 11 hours 39 min

  2. Python Pandas入門:タイムスタンプを分単位のPeriod(期間)に変換する方法

    Pandasでタイムスタンプ(Timestamp)を期間(Period)に変換するには、timestamp.to_period() メソッドを使用します。このメソッドの freq パラメータで頻度を指定でき、分単位の頻度にしたい場合は「T」を設定します。必要なライブラリのインポートまず、Pandasをインポートします。import pandas as pdタイムスタンプオブジェクトの作成次に、pd.Timestamp() を使ってタイムスタンプオブジェクトを作成します。年・月・日・時・分・秒・マイクロ秒を引数として渡せます。timestamp = pd.Timestamp(2021, 9, 6