Python Pandas - 単一ユニットの倍数の頻度でDateTimeIndexを丸める方法
DateTimeIndexを単一ユニットの倍数の頻度で丸める
PandasのDateTimeIndexを、単一ユニットの倍数となる頻度(例:10分間隔)で丸めるには、DateTimeIndex.round()メソッドを使用します。丸めの間隔はfreqパラメータで指定します。
必要なライブラリのインポート
まず、pandasをインポートします。
import pandas as pd
DatetimeIndexの作成
ここでは、期間5、頻度「H」(時間単位)、タイムゾーンをオーストラリア/アデレードに設定したDatetimeIndexを作成します。
datetimeindex = pd.date_range('2021-09-29 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='H')作成したDateTimeIndexを表示してみましょう。
print("DateTimeIndex...\n", datetimeindex)10分間隔での丸め処理
次に、10分の頻度(=単一ユニットである「分」の10倍)でDateTimeIndexを丸めます。分単位の頻度を指定する際には「T」を使用します。
print("\nPerforming round operation with multiples of a single unit frequency...\n",
datetimeindex.round(freq='10T'))補足: Pandas 2.x以降では、エイリアス「T」は非推奨となっており、代わりに「min」を使用することが推奨されています(例:freq='10min')。古いバージョンとの互換性が必要な場合を除き、「min」の使用を検討してください。
完全なコード例
以下に全体のコードを示します。
import pandas as pd
# 期間5、頻度H(時間単位)のDatetimeIndexを作成
# タイムゾーンはAustralia/Adelaide
datetimeindex = pd.date_range('2021-09-29 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='H')
# DateTimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)
# DateTimeIndexの頻度を表示
print("DateTimeIndex frequency...\n", datetimeindex.freq)
# 10分の頻度(単一ユニットの倍数)でDateTimeIndexを丸める
# 分単位の頻度には「T」を使用
print("\nPerforming round operation with multiples of a single unit frequency...\n",
datetimeindex.round(freq='10T'))実行結果
上記のコードを実行すると、以下のような出力が得られます。
DateTimeIndex... DatetimeIndex(['2021-09-29 07:20:32.261811624+09:30', '2021-09-29 08:20:32.261811624+09:30', '2021-09-29 09:20:32.261811624+09:30', '2021-09-29 10:20:32.261811624+09:30', '2021-09-29 11:20:32.261811624+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='H') DateTimeIndex frequency... <Hour> Performing round operation with multiples of a single unit frequency... DatetimeIndex(['2021-09-29 07:20:00+09:30', '2021-09-29 08:20:00+09:30', '2021-09-29 09:20:00+09:30', '2021-09-29 10:20:00+09:30', '2021-09-29 11:20:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq=None)
出力のポイント
元のDatetimeIndexは秒以下の細かい値(20:32.261…)を持っていますが、round(freq='10T')を実行することで、各タイムスタンプが直近の10分区切り(07:20、08:20など)に丸められていることがわかります。また、丸め処理後のDatetimeIndexではfreq属性がNoneになっている点にも注意してください。これは、round操作によって元の規則的な頻度情報が保持されなくなるためです。
-
Python Pandas入門:タイムデルタを分単位の頻度で丸める方法
タイムデルタ(Timedelta)を指定した解像度で丸めるには、round() メソッドを使用します。分単位の頻度で丸めたい場合は、freq パラメータに T を指定します。 必要なライブラリのインポート まず、pandas をインポートします。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltas は、Python の標準的な datetime ライブラリで使われる timedelta とは異なる表現を持ちます。ここでは、日・時・分・秒・ミリ秒・ナノ秒を含む Timedelta オブジェクトを作成します。 timedelta = pd.Timed
-
Python PandasでTimedeltaを1時間単位の頻度で丸める方法
Timedeltaを指定した解像度(頻度)で丸めたい場合は、timestamp.round()メソッドを使用します。1時間ごとの頻度で丸めるには、freqパラメータに「H」を指定します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdTimedeltaオブジェクトの作成TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、pd.Timedelta()を使ってTimedeltaオブジェクトを作成します。timedelta = pd.Timedelta