【Python Pandas】閉じた端点を共有する2つのIntervalオブジェクトが重なるかどうかを確認する方法
Python Pandas:閉じた端点を共有する2つのIntervalオブジェクトの重なりを確認する
閉じた端点(closed endpoint)を共有する2つのIntervalオブジェクトが重なっているかどうかを確認するには、overlaps()メソッドを使用します。
まず、必要なライブラリをインポートします。
import pandas as pd
2つの区間は、閉じた端点を含む共通の点を持つ場合に「重なっている」とみなされます。一方、開いた端点のみが共通している場合は、重なっていないと判断されます。
ここでは、両側が閉じた2つのIntervalオブジェクトを作成します。「closed」パラメータに「both」を指定することで、両側が閉じた区間を設定できます。
interval1 = pd.Interval(10, 30, closed='both') interval2 = pd.Interval(30, 50, closed='both')
作成した区間を表示します。
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
2つのIntervalオブジェクトが重なっているかどうかを確認します。
print("\nDo both the interval objects overlap?\n", interval1.overlaps(interval2))
サンプルコード
以下に完全なコード例を示します。
import pandas as pd
# 2つの区間は、閉じた端点を含む共通の点を持つ場合に重なるとみなされる
# 開いた端点のみが共通の場合は重ならない
# 2つのIntervalオブジェクトを作成
# 両側が閉じた区間を作成するには、「closed」パラメータに「both」を指定
interval1 = pd.Interval(10, 30, closed='both')
interval2 = pd.Interval(30, 50, closed='both')
# 区間を表示
print("Interval1...\n", interval1)
print("Interval2...\n", interval2)
# Interval1とInterval2の長さを表示
print("\nInterval1 object length = ", interval1.length)
print("\nInterval2 object length = ", interval2.length)
# 2つのIntervalオブジェクトが重なっているかどうかを確認
print("\nDo both the interval objects overlap?\n", interval1.overlaps(interval2))
出力結果
上記のコードを実行すると、次のような結果が出力されます。
Interval1... [10, 30] Interval2... [30, 50] Interval1 object length = 20 Interval2 object length = 20 Do both the interval objects overlap? True
この結果から、interval1([10, 30])とinterval2([30, 50])は端点30を共有しており、どちらも両側が閉じているため、overlaps()メソッドはTrueを返すことがわかります。つまり、閉じた端点を共有する2つの区間は、その端点において重なっていると判定されます。もし区間の端点が開いていた場合(closed='left'や'right'など)、同じ端点を共有していても重なりはないと判断される点に注意してください。
-
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オブジェクト