【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ネイティブの型に変換されるため、標準ライブラリや他のライブラリとの連携時に便利です。
-
PandasのTimestampオブジェクトをPythonネイティブのdatetimeオブジェクトに変換する方法
Pandasで扱う Timestamp オブジェクトを、Python標準ライブラリの datetime オブジェクトに変換したい場面はよくあります。その場合は、to_pydatetime() メソッドを使用します。このメソッドを呼び出すだけで、Pandas独自のTimestamp型がネイティブの datetime.datetime 型へと簡単に変換できます。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd Timestampオブジェクトの作成 次に、PandasでTimestampオブジェクトを作成します。日時を表す文字列を引数
-
Pythonコードオブジェクトとは?生成方法と主な属性を解説
Pythonコードオブジェクトとはコードオブジェクト(code object)は、CPython実装における低レベルな内部構造の一つです。それぞれのコードオブジェクトは、まだ関数へと束縛されていない「実行可能なコードの断片」を表します。コードオブジェクトは実行可能なコードを保持していますが、それ自体を直接呼び出すことはできません。実際に実行するには、組み込み関数 exec() を使用する必要があります。コードオブジェクトは、組み込み関数 compile() を使って文字列から生成できます。compile(ソース, ファイル名, モード) の形式で呼び出し、モードには exec を指定するのが一