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

Python Pandas入門:DateTimeIndexをミリ秒単位でフロア(切り下げ)する方法

DateTimeIndex.floor()メソッドとは

PandasのDateTimeIndex.floor()メソッドを使うと、日時データを指定した頻度(freq)の単位に切り下げることができます。ミリ秒単位でフロア操作を行いたい場合は、freqパラメータに'ms'を指定します。

例えば、ナノ秒レベルの細かい値を持つタイムスタンプを、ミリ秒単位に丸めて整理したい場合などに便利です。

実装手順

1. 必要なライブラリをインポート

まず、pandasをインポートします。

import pandas as pd

2. DatetimeIndexを作成

次に、開始時刻「2021-10-18 07:20:32.261811624」から5つの要素を持つDatetimeIndexを作成します。タイムゾーンはオーストラリア/アデレード(Australia/Adelaide)、頻度は40秒('40S')に設定しています。

datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='40S')

3. DatetimeIndexを表示

print("DateTimeIndex...\n", datetimeindex)

4. ミリ秒頻度でフロア操作を実行

floor()メソッドにfreq='ms'を渡して、各日時をミリ秒単位で切り下げます。

print("\nPerforming floor operation with milliseconds frequency...\n",
datetimeindex.floor(freq='ms'))

完全なサンプルコード

以下が全体のコードです。

import pandas as pd

# 期間5、頻度40秒('40S')のDatetimeIndexを作成
# タイムゾーンはAustralia/Adelaide
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5,
tz='Australia/Adelaide', freq='40S')

# DatetimeIndexを表示
print("DateTimeIndex...\n", datetimeindex)

# DatetimeIndexの頻度を表示
print("DateTimeIndex frequency...\n", datetimeindex.freq)

# ミリ秒頻度('ms')でフロア操作を実行
print("\nPerforming floor operation with milliseconds frequency...\n",
datetimeindex.floor(freq='ms'))

実行結果

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

DateTimeIndex...
DatetimeIndex(['2021-10-18 07:20:32.261811624+10:30',
'2021-10-18 07:21:12.261811624+10:30',
'2021-10-18 07:21:52.261811624+10:30',
'2021-10-18 07:22:32.261811624+10:30',
'2021-10-18 07:23:12.261811624+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq='40S')
DateTimeIndex frequency...
<40 * Seconds>

Performing floor operation with milliseconds frequency...
DatetimeIndex(['2021-10-18 07:20:32.261000+10:30',
'2021-10-18 07:21:12.261000+10:30',
'2021-10-18 07:21:52.261000+10:30',
'2021-10-18 07:22:32.261000+10:30',
'2021-10-18 07:23:12.261000+10:30'],
dtype='datetime64[ns, Australia/Adelaide]', freq=None)

結果のポイント

出力結果を見ると、元の日時はナノ秒精度(.261811624)でしたが、フロア操作後はミリ秒精度(.261000)に切り下げられていることがわかります。つまり、ミリ秒より細かい部分(マイクロ秒・ナノ秒)が切り捨てられています。

なお、フロア操作後のDatetimeIndexではfreqNoneになっている点にも注意してください。これは、floor()による変換後に元の頻度情報が保持されないためです。


  1. Python Pandas入門:DateTimeIndexを分単位の頻度で丸める方法

    pandasでDateTimeIndex(日時インデックス)を分単位の頻度で丸めるには、DateTimeIndex.round()メソッドを使用します。分単位の頻度を指定したい場合は、freq引数にTを設定します。なお、Tは「min(minutes)」のエイリアスであり、どちらを指定しても同じ結果が得られます。手順1:ライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pd手順2:DateTimeIndexの作成次に、期間5・頻度45秒(45s)のDatetimeIndexを作成します。タイムゾーンにはオーストラリアのアデレード(Australia

  2. PandasでDateTimeIndexを1時間ごとの頻度で丸める方法|round()の使い方を解説

    PandasでDateTimeIndexを1時間ごとの頻度に丸めるには、DateTimeIndex.round()メソッドを使用します。1時間ごとの頻度を指定する場合は、freqパラメータに「H」を設定します。 実装の手順 まず、必要なライブラリをインポートします。 import pandas as pd 続いて、期間5つ・頻度「T」(分単位)でDatetimeIndexを作成します。タイムゾーンはオーストラリア/アデレード(Australia/Adelaide)を指定しています。 datetimeindex = pd.date_range(2021-09-29 07:00, per