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

Python Pandas:タプルの配列からIntervalArrayを構築し、各区間の左端を取得する方法

Pandasでpandas.arrays.IntervalArray.from_tuples()メソッドを使うと、(始点, 終点) 形式のタプルを要素とする配列から、新しいIntervalArray(区間配列)を簡単に構築できます。さらに、array.leftプロパティを参照することで、IntervalArray内の各Interval(区間)の左端の値をIndexとして取得することが可能です。

IntervalArrayの構築手順

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

import pandas as pd

次に、タプルのリストから新しいIntervalArrayを構築します。

array = pd.arrays.IntervalArray.from_tuples([(10, 25), (15, 70)])

構築した区間を表示して確認してみましょう。

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

続いて、各Intervalの左端を取得します。

print("\nThe left endpoints of each Interval in the IntervalArray as an Index...\n", array.left)

サンプルコード

以下に、左端のほか区間の長さや中点もあわせて取得する完全なコード例を示します。

import pandas as pd

# タプルの配列から新しいIntervalArrayを構築
array = pd.arrays.IntervalArray.from_tuples([(10, 25), (15, 70)])

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

# IntervalArrayの長さを取得
# 各Intervalの長さを要素とするIndexを返す
print("\nOur IntervalArray length...\n", array.length)

# 各Intervalの中点をIndexとして取得
print("\nThe midpoint of each interval in the IntervalArray...\n", array.mid)

# 各Intervalの左端を取得
print("\nThe left endpoints of each Interval in the IntervalArray as an Index...\n", array.left)

実行結果

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

Our IntervalArray...
<IntervalArray>
[(10, 25], (15, 70]]
Length: 2, dtype: interval[int64, right]

Our IntervalArray length...
Int64Index([15, 55], dtype='int64')

The midpoint of each interval in the IntervalArray...
Float64Index([17.5, 42.5], dtype='float64')

The left endpoints of each Interval in the IntervalArray as an Index...
Int64Index([10, 15], dtype='int64')

ポイント解説

  • from_tuples():デフォルトでは右閉区間(side='right')として解釈されるため、(10, 25] のような「左開・右閉」の区間が生成されます。
  • .left:各Intervalの左端(下限値)をInt64Indexとして返します。この例では [10, 15] となります。
  • .length:各区間の長さ(終点 − 始点)を計算し、[15, 55] を返します。
  • .mid:各区間の中点をFloat64Indexとして返します。この例では [17.5, 42.5] です。

なお、Pandasのバージョンによっては Int64Index / Float64Index が非推奨となり、単一の Index 型に統合されている場合があります。その場合は出力の表示名が異なることがありますが、取得できる値自体は同じです。

  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) 作成