Python Pandas – IntervalArray内の各区間の中点をIndexとして取得する方法
IntervalArray内の各区間(Interval)の中点をIndexとして取得するには、array.midプロパティを使用します。このプロパティは、IntervalArrayに含まれる各区間の中点を要素とするIndexを返します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
Intervalオブジェクトの作成
次に、2つのIntervalオブジェクトを作成します。「closed」パラメータに「both」を指定すると、両端を含む閉区間として設定されます。
interval1 = pd.Interval(50, 75, closed='both') interval2 = pd.Interval(65, 90, closed='both')
作成した区間を表示して確認します。
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)IntervalArrayの構築
Intervalオブジェクトから新しいIntervalArrayを構築します。
array = pd.arrays.IntervalArray([interval1, interval2])
各区間の中点を取得する
array.midプロパティを使うことで、IntervalArray内の各区間の中点をIndexとして取得できます。中点は区間の下限値と上限値の平均として計算されます。
print("\nIntervalArray内の各区間の中点...\n", array.mid)サンプルコード
以下に完全なコード例を示します。
import pandas as pd
# 2つのIntervalオブジェクトを作成
# 「closed」パラメータに「both」を指定し、両端を含む閉区間として設定
interval1 = pd.Interval(50, 75, closed='both')
interval2 = pd.Interval(65, 90, closed='both')
# 区間を表示
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
# Intervalオブジェクトから新しいIntervalArrayを構築
array = pd.arrays.IntervalArray([interval1, interval2])
# IntervalArrayを表示
print("\n作成したIntervalArray...\n", array)
# IntervalArrayの各区間の長さを取得
# 各区間の長さを要素とするIndexが返される
print("\nIntervalArrayの各区間の長さ...\n", array.length)
# IntervalArray内の各区間の中点をIndexとして取得
print("\nIntervalArray内の各区間の中点...\n", array.mid)実行結果
上記のコードを実行すると、以下のような出力が得られます。
Interval1... [50, 75] Interval2... [65, 90] 作成したIntervalArray... <IntervalArray> [[50, 75], [65, 90]] Length: 2, dtype: interval[int64, both] IntervalArrayの各区間の長さ... Int64Index([25, 25], dtype='int64') IntervalArray内の各区間の中点... Float64Index([62.5, 77.5], dtype='float64')
解説
実行結果からわかるように、区間[50, 75]の中点は(50 + 75) / 2 = 62.5、区間[65, 90]の中点は(65 + 90) / 2 = 77.5となり、これらがFloat64Indexとして返されています。また、array.lengthプロパティを使用すれば、各区間の長さをInt64Indexとして取得することもできます。midプロパティは数値型の区間に対して有効であり、データ分析において区間データの代表値を求めたい場合などに便利です。
-
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) 作成