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

Python Pandas入門:DatetimeIndexをdatetime.datetimeオブジェクトのndarrayとして取得する方法

PandasのDatetimeIndexを、Python標準のdatetime.datetimeオブジェクトからなるオブジェクト型のndarray(NumPy配列)として取得したい場合は、datetimeindex.to_pydatetime()メソッドを使用します。

このメソッドを呼び出すと、Timestamp型の要素がすべてdatetime.datetime型に変換された配列が返されるため、標準ライブラリの日時処理機能と組み合わせて利用したい場合に非常に便利です。

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

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

import pandas as pd

DatetimeIndexの作成

次に、期間を5、頻度(freq)を「2Y」(2年ごと)としてDatetimeIndexを作成します。

datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

作成したDateTimeIndexを表示してみましょう。

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

to_pydatetime()でオブジェクトndarrayに変換する

DatetimeIndexをdatetime.datetimeオブジェクトのオブジェクトndarrayとして返します。

print("\nReturn DatetimeIndex as object ndarray of datetime.datetime objects...\n",
datetimeindex.to_pydatetime())

サンプルコード全体

以下に、ここまでの手順をまとめた完全なコード例を示します。

import pandas as pd

# 期間5、頻度「2Y」(2年ごと)のDatetimeIndexを作成
datetimeindex = pd.date_range('2021-10-18 07:20:32.261811624', periods=5, freq='2Y')

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

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

# DatetimeIndexをdatetime.datetimeオブジェクトのオブジェクトndarrayとして返す
print("\nReturn DatetimeIndex as object ndarray of datetime.datetime objects...\n",
datetimeindex.to_pydatetime())

実行結果

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

DateTimeIndex...
DatetimeIndex(['2021-12-31 07:20:32.261811624',
'2023-12-31 07:20:32.261811624',
'2025-12-31 07:20:32.261811624',
'2027-12-31 07:20:32.261811624',
'2029-12-31 07:20:32.261811624'],
dtype='datetime64[ns]', freq='2A-DEC')
DateTimeIndex frequency...
<2 * YearEnds: month=12>

Return DatetimeIndex as object ndarray of datetime.datetime objects...
[datetime.datetime(2021, 12, 31, 7, 20, 32, 261811)
datetime.datetime(2023, 12, 31, 7, 20, 32, 261811)
datetime.datetime(2025, 12, 31, 7, 20, 32, 261811)
datetime.datetime(2027, 12, 31, 7, 20, 32, 261811)
datetime.datetime(2029, 12, 31, 7, 20, 32, 261811)]

ポイントまとめ

  • to_pydatetime()は、DatetimeIndex内の各TimestampをPython標準のdatetime.datetimeオブジェクトに変換したndarrayを返します。
  • 元のDatetimeIndex自体は変更されず、新しい配列が生成されます。
  • 頻度「2Y」を指定した場合、各日付は年末(12月31日)に揃えられる点に注意してください。
  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 を指定するのが一