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

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


分割点(breaks)の配列からIntervalArrayを構築するには、pandas.arrays.IntervalArray.from_breaks()メソッドを使用します。また、各区間の左端を取得するには、array.leftプロパティを使います。

IntervalArrayとは

IntervalArrayは、Pandasが提供する区間(インターバル)専用の配列構造です。数値の範囲を複数の区間に分割して管理したい場合に便利で、ヒストグラムのビン作成や年齢層の分類など、データを階級ごとに分ける処理でよく活用されます。デフォルトでは右側が閉じた区間(closed='right')として作成されるため、「(0, 1]」のように左側は開き、右側の値が含まれる形になります。

実装手順

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

import pandas as pd

次に、分割点の配列から新しいIntervalArrayを構築します。ここでは0から5までの分割点を指定しているため、(0, 1]、(1, 2]、(2, 3]、(3, 4]、(4, 5] の5つの区間が生成されます。

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

作成した区間を表示します。

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

各区間の左端を取得します。

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_breaks([0, 1, 2, 3, 4, 5])

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

# IntervalArrayの長さを取得
# 各区間の長さをIndexとして返します
print("\nOur IntervalArray length...\n",array.length)

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

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

実行結果

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

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

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

The midpoint of each interval in the IntervalArray...
Float64Index([0.5, 1.5, 2.5, 3.5, 4.5], dtype='float64')

The left endpoints of each Interval in the IntervalArray as an Index...
Int64Index([0, 1, 2, 3, 4], dtype='int64')

各プロパティの解説

  • array.left:各区間の左端(下限)をInt64Indexとして返します。この例では [0, 1, 2, 3, 4] となります。
  • array.right:各区間の右端(上限)を返します。この例では [1, 2, 3, 4, 5] になります。
  • array.mid:各区間の中間点をFloat64Indexとして返します。
  • array.length:各区間の長さを返します。

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