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

Python Pandasのset_closed()で現在のIntervalArrayと同一の、指定した側で閉じた配列を返す方法

PythonのPandasライブラリでは、現在のIntervalArrayと同一でありながら、指定した側で閉じられた新しいIntervalArrayを返したい場合に、set_closed()メソッドを使用します。引数にbothを指定すると、区間の両端が閉じた(両端を含む)IntervalArrayが生成されます。

set_closed()メソッドとは

set_closed()は、既存のIntervalArrayの各区間の開閉状態を変更したコピーを返すメソッドです。指定できる値は以下の4種類です。

  • 'left':左端のみ閉じる
  • 'right':右端のみ閉じる
  • 'both':両端を閉じる
  • 'neither':両端とも開く

実装手順

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

import pandas as pd

次に、分割点の配列から新しいIntervalArrayを作成します。

array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])

作成したIntervalArrayを表示します。

print("Our IntervalArray...\n",array)

set_closed()に'both'を渡し、両端が閉じられた同一のIntervalArrayを取得します。

print("\nAn identical IntervalArray closed on the specified side...\n", array.set_closed('both'))

サンプルコード

以下に完全なコード例を示します。

import pandas as pd

# 分割点の配列から新しいIntervalArrayを作成
array = pd.arrays.IntervalArray.from_breaks([0, 1, 2, 3, 4, 5])

# IntervalArrayを表示
print("Our IntervalArray...\n",array)

# 指定した側(両端)で閉じられた同一のIntervalArrayを表示
print("\nAn identical IntervalArray closed on the specified side...\n", array.set_closed('both'))

出力結果

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

Our IntervalArray...
<IntervalArray>
[(0, 1], (1, 2], (2, 3], (3, 4], (4, 5]]
Length: 5, dtype: interval[int64, right]

An identical IntervalArray closed on the specified side...
<IntervalArray>
[[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]]
Length: 5, dtype: interval[int64, both]

解説

元のIntervalArrayはデフォルトで右側が閉じている(dtype: interval[int64, right])ため、各区間は (0, 1] のように左開・右閉となっています。set_closed('both')を実行すると、dtypeが interval[int64, both] に変化し、各区間が [0, 1] のように両端を含む形に変換されていることがわかります。このように、set_closed()を使えば元のデータを変更せずに、開閉状態だけを変えた新しいIntervalArrayを簡単に作成できます。

  1. Python Pandas – IntervalArray内の各区間の右端をインデックスとして取得する方法

    PandasのIntervalArrayに含まれる各区間(Interval)の右端(右エンドポイント)をインデックス(Index)として取得するには、array.rightプロパティを使用します。このプロパティは、各区間の右側の境界値をまとめたIndexオブジェクトを返します。なお、pd.Interval(10, 25)のように作成した区間は「左開・右閉」の区間(10, 25]となるため、右端の値はその区間に含まれる点にも注意してください。手順1:ライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pd手順2:Intervalオブジェクトの作成2つ

  2. Python Pandas – IntervalArrayの各区間の左端をインデックスとして取得する方法

    PandasのIntervalArrayに含まれる各区間(Interval)の左端(始点)をインデックス(Index)として取得するには、array.leftプロパティを使用します。このプロパティは、各Intervalの左側の境界値をまとめたインデックスを返します。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd Intervalオブジェクトの作成 2つのIntervalオブジェクトを作成します。 interval1 = pd.Interval(10, 25) interval2 = pd.Interval(15, 70) 作成