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

Python Pandas:to_perioddelta()でインデックス値とPeriodArray変換後のインデックスの差分(TimedeltaArray)を計算する方法

インデックス値と、指定した周波数でPeriodArrayに変換したインデックスとの差分からTimedeltaArrayを計算するには、datetimeindex.to_perioddelta()メソッドを使用します。周波数はfreqパラメータで指定します。

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

import pandas as pd

開始日時「2021-10-18 07:20:32.261811624」を基準に、期間5、周波数「2Y」(2年ごと)のDatetimeIndexを作成します。

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

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

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

続いて、インデックス値とPeriodArrayに変換したインデックスとの差分のTimedeltaArrayを計算します。ここでは「freq」パラメータに「M」(月)を指定し、Periodの周波数を月単位に設定しています。

print("\nConvert DateTimeIndex to PeriodDelta...\n",
datetimeindex.to_perioddelta(freq='M'))

実行例

以下が完全なコードです。

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をPeriodに変換
# 「freq」パラメータに「M」を指定して月単位の周波数を設定
print("\nConvert DateTimeIndex to Period...\n",
datetimeindex.to_period(freq='M'))

# インデックス値とPeriodArrayに変換したインデックスとの差分のTimedeltaArrayを計算
# 「freq」パラメータに「M」を指定してPeriodの周波数を設定
print("\nConvert DateTimeIndex to PeriodDelta...\n",
datetimeindex.to_perioddelta(freq='M'))

出力結果

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

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>

Convert DateTimeIndex to Period...
PeriodIndex(['2021-12', '2023-12', '2025-12', '2027-12', '2029-12'], dtype='period[M]')

Convert DateTimeIndex to PeriodDelta...
TimedeltaIndex(['30 days 07:20:32.261811624', '30 days 07:20:32.261811624',
'30 days 07:20:32.261811624', '30 days 07:20:32.261811624',
'30 days 07:20:32.261811624'],
dtype='timedelta64[ns]', freq=None)

このように、to_perioddelta()メソッドを使うことで、元のタイムスタンプとPeriodに丸めた時点との差分をTimedeltaIndexとして簡単に取得できます。各要素は「30 days 07:20:32.261811624」となり、月末までの残り時間が求められていることがわかります。

  1. Pythonのリストとタプルの違いを徹底解説!特徴と使い分けのポイント

    この記事では、Pythonにおけるリスト(list)とタプル(tuple)の違いについて詳しく解説します。リストとタプルは、Pythonでデータを格納するために使われる代表的な2つのデータ構造です。どちらも異なる型のデータをまとめて扱うことができますが、それぞれに重要な特徴があります。リスト(list)とはリストは「シーケンス」とも呼ばれ、Pythonで最も頻繁に使われるデータ型の一つです。柔軟性が高く、さまざまな場面で活用できるのが魅力です。リストを作成するには、すべての要素を角括弧 [ ] の中に入れ、要素同士をカンマで区切ります。リストには任意の数の要素を格納でき、整数・浮動小数点数・文

  2. PythonとBashの違いとは?7つの観点で比較して徹底解説

    PythonとはPythonは、シンプルな実装と高い可読性を重視して設計されたプログラミング言語です。動的型付けを採用しており、変数の型を事前に宣言する必要がありません。また、C言語のようなポインタという概念を持たないため、初心者でも直感的にコードを書きやすい点が大きな特徴です。BashとはBash(Bourne Again Shell)は、コマンドラインインタプリタの一種で、LinuxやmacOSには標準で搭載されています。その他のOSにもインストールして利用することが可能です。LinuxおよびmacOSにおいては、デフォルトのユーザーシェルとして広く使われています。以下に、PythonとB