Python Pandas入門:IntervalArrayの各区間の長さを取得してIndexとして返す方法
IntervalArray(区間配列)に含まれる各区間(Interval)の長さを示すエントリを持つ Index を返したい場合は、array.length プロパティを使用します。このプロパティを呼び出すことで、配列内のすべての区間の長さが一括して計算され、Int64型の Index として取得できます。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
Intervalオブジェクトの作成
次に、2つの Interval オブジェクトを作成します。「closed」パラメータに「both」を指定すると、両端を含む閉区間として設定されます。
interval1 = pd.Interval(50, 75, closed='both') interval2 = pd.Interval(65, 95, closed='both')
IntervalArrayの構築と表示
作成した Interval オブジェクトから、新しい IntervalArray を構築します。
array = pd.arrays.IntervalArray([interval1, interval2])
IntervalArray の内容を表示してみましょう。
print("\nOur IntervalArray...\n", array)各区間の長さを取得する
length プロパティを使うと、IntervalArray 内の各区間の長さを示すエントリを持つ Index が返されます。
print("\nOur IntervalArray length...\n", array.length)完全なコード例
以下に、これまでの手順をまとめた完全なコードを示します。
import pandas as pd
# 2つのIntervalオブジェクトを作成
# 「closed」パラメータに「both」を指定して両端を含む閉区間に設定
interval1 = pd.Interval(50, 75, closed='both')
interval2 = pd.Interval(65, 95, closed='both')
# 区間を表示
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
# 各区間の長さを表示
print("\nInterval1 length...\n", interval1.length)
print("\nInterval2 length...\n", interval2.length)
# Intervalオブジェクトから新しいIntervalArrayを構築
array = pd.arrays.IntervalArray([interval1, interval2])
# IntervalArrayを表示
print("\nOur IntervalArray...\n", array)
# IntervalArrayの長さを取得
# 各区間の長さを示すエントリを持つIndexが返される
print("\nOur IntervalArray length...\n", array.length)実行結果
上記のコードを実行すると、次のような出力が得られます。
Interval1... [50, 75] Interval2... [65, 95] Interval1 length... 25 Interval2 length... 30 Our IntervalArray... <IntervalArray> [[50, 75], [65, 95]] Length: 2, dtype: interval[int64, both] Our IntervalArray length... Int64Index([25, 30], dtype='int64')
解説
実行結果からわかるように、interval1.length は「75 − 50 = 25」、interval2.length は「95 − 65 = 30」という値を返します。これは、closed パラメータの設定(left / right / both / neither のいずれ)に関わらず、区間の長さは常に終点から始点を引いた値になるためです。
さらに、IntervalArray 全体に対して array.length を呼び出すと、各区間の長さを要素とする Int64Index([25, 30]) が一度に取得できます。複数の区間を扱うデータ分析において、各区間の幅やスパンをまとめて確認したい場合に非常に便利な機能です。
-
Python Pandas – IntervalArray内の各区間の右端をインデックスとして取得する方法
PandasのIntervalArrayに含まれる各区間(Interval)の右端(右エンドポイント)をインデックス(Index)として取得するには、array.rightプロパティを使用します。このプロパティは、各区間の右側の境界値をまとめたIndexオブジェクトを返します。なお、pd.Interval(10, 25)のように作成した区間は「左開・右閉」の区間(10, 25]となるため、右端の値はその区間に含まれる点にも注意してください。手順1:ライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pd手順2:Intervalオブジェクトの作成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) 作成