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

【Python Pandas】マイクロ秒('us')の頻度でTimeDeltaIndexを丸める方法

PandasでTimeDeltaIndex(時間差インデックス)をマイクロ秒の精度で丸めたい場合は、TimeDeltaIndex.round()メソッドを使用します。マイクロ秒の頻度を指定するには、freqパラメータに'us'を設定します。

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

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

import pandas as pd

2. TimeDeltaIndexオブジェクトの作成

次に、dataパラメータを使ってtimedelta形式のデータを渡し、TimeDeltaIndexオブジェクトを作成します。

tdIndex = pd.TimedeltaIndex(data =['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
'2 day 4h 03:08:02.000045', '+07:20:32.261811624'])

作成したTimedeltaIndexを表示して確認してみましょう。

print("TimedeltaIndex...\n", tdIndex)

3. マイクロ秒の頻度で丸め処理を実行する

round()メソッドにfreq='us'を指定すると、ナノ秒以下の値がマイクロ秒単位に丸められます。

print("\nPerforming round operation with microseconds frequency...\n",
tdIndex.round(freq='us'))

コード例(全体)

以下は、ここまでの手順をまとめた完全なサンプルコードです。

import pandas as pd

# TimeDeltaIndexオブジェクトを作成
# dataパラメータでtimedelta形式のデータを設定
tdIndex = pd.TimedeltaIndex(data =['10 day 5h 2 min 3us 10ns', '+22:39:19.999999',
'2 day 4h 03:08:02.000045', '+07:20:32.261811624'])

# TimedeltaIndexを表示
print("TimedeltaIndex...\n", tdIndex)

# TimeDeltaの各構成要素(日・時・分・秒など)をDataFrameとして返す
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# マイクロ秒の頻度で丸め処理を実行
# freq='us' を指定することでマイクロ秒単位に丸める
print("\nPerforming round operation with microseconds frequency...\n",
tdIndex.round(freq='us'))

実行結果

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

TimedeltaIndex...
TimedeltaIndex(['10 days 05:02:00.000003010', '0 days 22:39:19.999999',
'2 days 07:08:02.000045', '0 days 07:20:32.261811624'],
dtype='timedelta64[ns]', freq=None)

The Dataframe of the components of TimeDeltas...
    days hours minutes seconds milliseconds microseconds nanoseconds
0    10     5       2        0            0             3           10
1     0    22      39       19          999           999            0
2     2     7       8        2            0            45            0
3     0     7      20       32          261          811          624

Performing round operation with microseconds frequency...
TimedeltaIndex(['10 days 05:02:00.000003', '0 days 22:39:19.999999',
'2 days 07:08:02.000045', '0 days 07:20:32.261812'],
dtype='timedelta64[ns]', freq=None)

ポイント解説

  • freq='us' を指定すると、ナノ秒部分が四捨五入され、マイクロ秒単位の値に丸められます。
  • 元のデータ「0 days 07:20:32.261811624」は、丸め後「0 days 07:20:32.261812」となり、624ナノ秒が切り上げられていることがわかります。
  • 同様に、freq='ms'(ミリ秒)、freq='s'(秒)などを指定すれば、他の精度でも丸め処理が可能です。
  • componentsプロパティを使うと、日数・時間・分・秒・ミリ秒・マイクロ秒・ナノ秒といった各構成要素をDataFrame形式で確認できます。
  1. Python Pandas入門:タイムデルタを分単位の頻度で丸める方法

    タイムデルタ(Timedelta)を指定した解像度で丸めるには、round() メソッドを使用します。分単位の頻度で丸めたい場合は、freq パラメータに T を指定します。 必要なライブラリのインポート まず、pandas をインポートします。 import pandas as pd Timedeltaオブジェクトの作成 TimeDeltas は、Python の標準的な datetime ライブラリで使われる timedelta とは異なる表現を持ちます。ここでは、日・時・分・秒・ミリ秒・ナノ秒を含む Timedelta オブジェクトを作成します。 timedelta = pd.Timed

  2. Python PandasでTimedeltaを1時間単位の頻度で丸める方法

    Timedeltaを指定した解像度(頻度)で丸めたい場合は、timestamp.round()メソッドを使用します。1時間ごとの頻度で丸めるには、freqパラメータに「H」を指定します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdTimedeltaオブジェクトの作成TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、pd.Timedelta()を使ってTimedeltaオブジェクトを作成します。timedelta = pd.Timedelta