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