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

【Python・Pandas】TimeDeltaIndexをdatetime.timedeltaオブジェクトのndarrayとして返す方法

TimeDeltaIndexをdatetime.timedeltaオブジェクトのobject型ndarrayとして取得するには、TimeDeltaIndex.to_pytimedelta()メソッドを使用します。このメソッドを呼び出すと、TimedeltaIndexの各要素がPython標準ライブラリのdatetime.timedeltaオブジェクトに変換され、その結果がNumPy配列(dtype=object)として返されます。

まず、必要なライブラリをインポートしましょう。

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', '+21:15:45.999999'])

TimeDeltaIndexをobject型ndarrayとして返します。

print("\nTimeDeltaIndexをdatetime.timedeltaオブジェクトのndarrayとして返します...\n",
tdIndex.to_pytimedelta())

サンプルコード

以下がコード全体です。

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', '+21:15:45.999999'])

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

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

# TimeDeltaIndexをobject型ndarrayとして返す
print("\nTimeDeltaIndexをdatetime.timedeltaオブジェクトのndarrayとして返します...\n",
tdIndex.to_pytimedelta())

出力結果

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

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

TimeDeltasの構成要素のDataFrame...
  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     21   15       45      999         999             0

TimeDeltaIndexをdatetime.timedeltaオブジェクトのndarrayとして返します...
[datetime.timedelta(days=10, seconds=18120, microseconds=3)
 datetime.timedelta(seconds=81559, microseconds=999999)
 datetime.timedelta(days=2, seconds=25682, microseconds=45)
 datetime.timedelta(seconds=76545, microseconds=999999)]

補足:to_pytimedelta()メソッドのポイント

  • to_pytimedelta()は引数を取らず、TimedeltaIndex全体を一括して変換します。
  • 戻り値はdtype=objectのNumPy配列(ndarray)で、各要素はPython標準のdatetime.timedeltaオブジェクトです。
  • Pandas独自のtimedelta64[ns]型ではなくPythonネイティブの型に変換されるため、標準ライブラリや他のライブラリとの連携時に便利です。


  1. PandasのTimestampオブジェクトをPythonネイティブのdatetimeオブジェクトに変換する方法

    Pandasで扱う Timestamp オブジェクトを、Python標準ライブラリの datetime オブジェクトに変換したい場面はよくあります。その場合は、to_pydatetime() メソッドを使用します。このメソッドを呼び出すだけで、Pandas独自のTimestamp型がネイティブの datetime.datetime 型へと簡単に変換できます。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd Timestampオブジェクトの作成 次に、PandasでTimestampオブジェクトを作成します。日時を表す文字列を引数

  2. Pythonコードオブジェクトとは?生成方法と主な属性を解説

    Pythonコードオブジェクトとはコードオブジェクト(code object)は、CPython実装における低レベルな内部構造の一つです。それぞれのコードオブジェクトは、まだ関数へと束縛されていない「実行可能なコードの断片」を表します。コードオブジェクトは実行可能なコードを保持していますが、それ自体を直接呼び出すことはできません。実際に実行するには、組み込み関数 exec() を使用する必要があります。コードオブジェクトは、組み込み関数 compile() を使って文字列から生成できます。compile(ソース, ファイル名, モード) の形式で呼び出し、モードには exec を指定するのが一