From 276211a5c111695ea76548c7c8cf66a4327b117a Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Wed, 22 Oct 2025 09:24:36 -0700 Subject: [PATCH 1/7] GH 25298: Add test for interval index in multiindex --- pandas/tests/indexing/multiindex/test_multiindex.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index 35ef7625b6e76..f8a1cac6ca903 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -8,6 +8,8 @@ CategoricalDtype, DataFrame, Index, + Interval, + IntervalIndex, MultiIndex, Series, ) @@ -292,3 +294,13 @@ def test_multiindex_assign_alignment_with_non_string_dtype(self): ) tm.assert_frame_equal(meta, result) + + def test_multiindex_with_interval_index(self): + # for https://github.com/pandas-dev/pandas/issues/25298 + intIndex = IntervalIndex.from_arrays([1,5,8,13,16], [4,9,12,17,20]) + multiIndex = MultiIndex.from_arrays([["a", "a", "b", "b", "c"], intIndex]) + data = [(1,2),(3,4),(5,6),(7,8), (9,10)] + df = DataFrame(data, index=multiIndex) + series1 = df.loc[("b", 16)] + series2 = df.loc["b"].loc[16] + tm.assert_equal(series1.array, series2.array) From 2f5fa2a865dfb8caa31188fb97374efc794d9314 Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Wed, 22 Oct 2025 09:35:31 -0700 Subject: [PATCH 2/7] whitespace --- pandas/tests/indexing/multiindex/test_multiindex.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index f8a1cac6ca903..fe77e31686fe4 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -294,7 +294,7 @@ def test_multiindex_assign_alignment_with_non_string_dtype(self): ) tm.assert_frame_equal(meta, result) - + def test_multiindex_with_interval_index(self): # for https://github.com/pandas-dev/pandas/issues/25298 intIndex = IntervalIndex.from_arrays([1,5,8,13,16], [4,9,12,17,20]) @@ -303,4 +303,4 @@ def test_multiindex_with_interval_index(self): df = DataFrame(data, index=multiIndex) series1 = df.loc[("b", 16)] series2 = df.loc["b"].loc[16] - tm.assert_equal(series1.array, series2.array) + tm.assert_equal(series1.array, series2.array) \ No newline at end of file From 6f6e0f6aa70b238b55c58b5faf11b3486a034203 Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Wed, 22 Oct 2025 09:45:37 -0700 Subject: [PATCH 3/7] lint --- pandas/tests/indexing/multiindex/test_multiindex.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index fe77e31686fe4..b462e682daf7a 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -303,4 +303,5 @@ def test_multiindex_with_interval_index(self): df = DataFrame(data, index=multiIndex) series1 = df.loc[("b", 16)] series2 = df.loc["b"].loc[16] - tm.assert_equal(series1.array, series2.array) \ No newline at end of file + tm.assert_equal(series1.array, series2.array) + \ No newline at end of file From 032599844780ee68a5486316cdc58d4d2c3efa8e Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Wed, 22 Oct 2025 09:56:39 -0700 Subject: [PATCH 4/7] lint once more --- pandas/tests/indexing/multiindex/test_multiindex.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index b462e682daf7a..a8c80e34300c7 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -8,7 +8,6 @@ CategoricalDtype, DataFrame, Index, - Interval, IntervalIndex, MultiIndex, Series, @@ -297,11 +296,10 @@ def test_multiindex_assign_alignment_with_non_string_dtype(self): def test_multiindex_with_interval_index(self): # for https://github.com/pandas-dev/pandas/issues/25298 - intIndex = IntervalIndex.from_arrays([1,5,8,13,16], [4,9,12,17,20]) + intIndex = IntervalIndex.from_arrays([1, 5, 8, 13, 16], [4, 9, 12, 17, 20]) multiIndex = MultiIndex.from_arrays([["a", "a", "b", "b", "c"], intIndex]) - data = [(1,2),(3,4),(5,6),(7,8), (9,10)] + data = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)] df = DataFrame(data, index=multiIndex) series1 = df.loc[("b", 16)] series2 = df.loc["b"].loc[16] tm.assert_equal(series1.array, series2.array) - \ No newline at end of file From 456ae7cc9908d2209b8145522887c12389ac3e3e Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Fri, 24 Oct 2025 08:42:21 -0700 Subject: [PATCH 5/7] move test --- pandas/tests/indexing/interval/test_interval.py | 10 ++++++++++ pandas/tests/indexing/multiindex/test_multiindex.py | 11 ----------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/pandas/tests/indexing/interval/test_interval.py b/pandas/tests/indexing/interval/test_interval.py index 6bcebefa6c696..de22d03192044 100644 --- a/pandas/tests/indexing/interval/test_interval.py +++ b/pandas/tests/indexing/interval/test_interval.py @@ -222,3 +222,13 @@ def test_reindex_behavior_with_interval_index(self, base): expected_result = Series([np.nan, 0], index=[np.nan, 1.0], dtype=float) result = ser.reindex(index=[np.nan, 1.0]) tm.assert_series_equal(result, expected_result) + + def test_multiindex_with_interval_index(self): + # for GH#25298 + intIndex = IntervalIndex.from_arrays([1, 5, 8, 13, 16], [4, 9, 12, 17, 20]) + multiIndex = pd.MultiIndex.from_arrays([["a", "a", "b", "b", "c"], intIndex]) + data = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)] + df = DataFrame(data, index=multiIndex) + series1 = df.loc[("b", 16)] + series2 = df.loc["b"].loc[16] + tm.assert_equal(series1.array, series2.array) diff --git a/pandas/tests/indexing/multiindex/test_multiindex.py b/pandas/tests/indexing/multiindex/test_multiindex.py index a8c80e34300c7..35ef7625b6e76 100644 --- a/pandas/tests/indexing/multiindex/test_multiindex.py +++ b/pandas/tests/indexing/multiindex/test_multiindex.py @@ -8,7 +8,6 @@ CategoricalDtype, DataFrame, Index, - IntervalIndex, MultiIndex, Series, ) @@ -293,13 +292,3 @@ def test_multiindex_assign_alignment_with_non_string_dtype(self): ) tm.assert_frame_equal(meta, result) - - def test_multiindex_with_interval_index(self): - # for https://github.com/pandas-dev/pandas/issues/25298 - intIndex = IntervalIndex.from_arrays([1, 5, 8, 13, 16], [4, 9, 12, 17, 20]) - multiIndex = MultiIndex.from_arrays([["a", "a", "b", "b", "c"], intIndex]) - data = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)] - df = DataFrame(data, index=multiIndex) - series1 = df.loc[("b", 16)] - series2 = df.loc["b"].loc[16] - tm.assert_equal(series1.array, series2.array) From a7e9a4e099b9b2e3e41329ad4e8af502e6cfabca Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Thu, 30 Oct 2025 11:01:07 -0700 Subject: [PATCH 6/7] fix test --- pandas/tests/indexing/interval/test_interval.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pandas/tests/indexing/interval/test_interval.py b/pandas/tests/indexing/interval/test_interval.py index de22d03192044..ea9be61835cf3 100644 --- a/pandas/tests/indexing/interval/test_interval.py +++ b/pandas/tests/indexing/interval/test_interval.py @@ -229,6 +229,8 @@ def test_multiindex_with_interval_index(self): multiIndex = pd.MultiIndex.from_arrays([["a", "a", "b", "b", "c"], intIndex]) data = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)] df = DataFrame(data, index=multiIndex) - series1 = df.loc[("b", 16)] - series2 = df.loc["b"].loc[16] - tm.assert_equal(series1.array, series2.array) + result1 = df.loc[("b", 16)] + expected = Series([7, 8]) + tm.assert_series_equal(result1, expected, check_names=False) + result2 = df.loc["b"].loc[16] + tm.assert_series_equal(result2, expected, check_names=False) From 73cea1f1e7ea0049cb7e3a739b98948c8683e6d2 Mon Sep 17 00:00:00 2001 From: Harini Krishnamurthy Date: Tue, 4 Nov 2025 13:25:02 -0800 Subject: [PATCH 7/7] fix test --- pandas/tests/indexing/interval/test_interval.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/pandas/tests/indexing/interval/test_interval.py b/pandas/tests/indexing/interval/test_interval.py index ea9be61835cf3..3550716f0a77b 100644 --- a/pandas/tests/indexing/interval/test_interval.py +++ b/pandas/tests/indexing/interval/test_interval.py @@ -232,5 +232,3 @@ def test_multiindex_with_interval_index(self): result1 = df.loc[("b", 16)] expected = Series([7, 8]) tm.assert_series_equal(result1, expected, check_names=False) - result2 = df.loc["b"].loc[16] - tm.assert_series_equal(result2, expected, check_names=False)