Python Pandas IntervalIndex – 閉じた端点を共有する区間が重なっているかどうかを確認する方法
閉じた端点(closed endpoint)を共有する区間同士が重なっているかどうかを確認するには、IntervalIndex.is_overlapping プロパティを使用します。このプロパティは、IntervalIndex 内のいずれかの区間が他の区間と重なっている場合に True を、まったく重なりがない場合に False を返します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
IntervalIndex の作成
pd.interval_range() を使って IntervalIndex を作成します。ここでは closed パラメータに 'both' を指定しているため、各区間は両側が閉じた(両端を含む)区間になります。
interval = pd.interval_range(0, 8, closed='both')
作成した IntervalIndex の表示
print("IntervalIndex...\n", interval)区間が重なっているかどうかの確認
is_overlapping プロパティを使って、閉じた端点を共有する区間が重なっているかどうかをチェックします。
print("\n閉じた端点を共有する区間は重なっていますか?\n", interval.is_overlapping)完全なサンプルコード
以下にコード全体を示します。
import pandas as pd
# IntervalIndex を作成
# closed パラメータに 'both' を指定しているため、区間は両側が閉じています
interval = pd.interval_range(0, 8, closed='both')
# 区間を表示
print("IntervalIndex...\n", interval)
# 各区間の長さを表示
print("\nIntervalIndex の長さ...\n", interval.length)
# 閉じた端点を共有する区間が重なっているかどうかを確認
print("\n閉じた端点を共有する区間は重なっていますか?\n", interval.is_overlapping)実行結果
上記のコードを実行すると、次のような出力が得られます。
IntervalIndex... IntervalIndex([[0, 1], [1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8]], dtype='interval[int64, both]') IntervalIndex length... Int64Index([1, 1, 1, 1, 1, 1, 1, 1], dtype='int64') Does the Intervals that share closed endpoints overlap? True
解説
この例では、[0, 1] と [1, 2] のように隣接する区間が端点 1 を共有しています。区間が closed='both'(両側閉)で定義されているため、共有された端点自体が両方の区間に含まれ、結果として区間同士が重なっていると判定されます。そのため is_overlapping は True を返します。
なお、closed='left' や closed='right' のように片側だけが閉じた区間の場合、隣接する区間は端点を共有しても実質的には重ならないため、このようなケースでは False が返される点に注意してください。
-
Python Pandas – IntervalArrayの区間が左側・右側・両側・非閉のどれで閉じているかを確認する方法
IntervalArray内の区間(インターバル)が、左側・右側・両側のいずれで閉じているのか、あるいはどちらでも閉じていないのかを確認するには、array.closedプロパティを使用します。このプロパティは、配列内のすべての区間に共通する「閉じ」の設定を文字列として返します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdIntervalオブジェクトの作成次に、2つのIntervalオブジェクトを作成します。「closed」パラメータに「both」を指定することで、両側が閉じた区間を設定できます。閉区間とは、数学において角括弧 [
-
Python Pandas:開いた端点を共有する2つのIntervalオブジェクトが重なるかどうかを確認する方法
開いた端点を共有する2つのIntervalオブジェクトが重なっているかどうかを確認するには、overlaps()メソッドを使用します。 Pandasにおける区間の重複判定のルールはシンプルです。2つの区間が「共通の点」を持つ場合、その点が閉じた端点であれば重なっているとみなされます。しかし、開いた端点しか共有していない場合、その点はどちらの区間にも実際には含まれていないため、重なっているとは判断されません。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd Intervalオブジェクトの作成 2つのIntervalオブジェクト