Skip to content

Commit 98d70f0

Browse files
committed
BUG: Added test cases from original post, hardcoded expected values pandas-dev#29751
1 parent 1fb9751 commit 98d70f0

File tree

1 file changed

+32
-22
lines changed

1 file changed

+32
-22
lines changed

pandas/tests/indexing/multiindex/test_getitem.py

+32-22
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,38 @@ def test_frame_mixed_depth_get():
197197
tm.assert_series_equal(result, expected)
198198

199199

200+
def test_frame_getitem_nan_multiindex(nulls_fixture):
201+
# GH#29751
202+
# loc on a multiindex containing nan values
203+
n = nulls_fixture # for code readability
204+
cols = ["a", "b", "c"]
205+
df = DataFrame(
206+
[[11, n, 13], [21, n, 23], [31, n, 33], [41, n, 43]],
207+
columns=cols,
208+
dtype="int64",
209+
).set_index(["a", "b"])
210+
211+
idx = (21, n)
212+
result = df.loc[:idx]
213+
expected = DataFrame(
214+
[[11, n, 13], [21, n, 23]], columns=cols, dtype="int64"
215+
).set_index(["a", "b"])
216+
tm.assert_frame_equal(result, expected)
217+
218+
result = df.loc[idx:]
219+
expected = DataFrame(
220+
[[21, n, 23], [31, n, 33], [41, n, 43]], columns=cols, dtype="int64"
221+
).set_index(["a", "b"])
222+
tm.assert_frame_equal(result, expected)
223+
224+
idx1, idx2 = (21, n), (31, n)
225+
result = df.loc[idx1:idx2]
226+
expected = DataFrame(
227+
[[21, n, 23], [31, n, 33]], columns=cols, dtype="int64"
228+
).set_index(["a", "b"])
229+
tm.assert_frame_equal(result, expected)
230+
231+
200232
# ----------------------------------------------------------------------------
201233
# test indexing of DataFrame with multi-level Index with duplicates
202234
# ----------------------------------------------------------------------------
@@ -279,25 +311,3 @@ def test_loc_empty_multiindex():
279311
result = df
280312
expected = DataFrame([1, 2, 3, 4], index=index, columns=["value"])
281313
tm.assert_frame_equal(result, expected)
282-
283-
284-
@pytest.mark.parametrize("idx1,idx2", [(0, 1), (1, 4), (1, 3)])
285-
def test_loc_nan_multiindex(nulls_fixture, idx1, idx2):
286-
# GH#29751
287-
# loc on a multiindex containing nan values
288-
arr = [
289-
[11, nulls_fixture, 13],
290-
[21, nulls_fixture, 23],
291-
[31, nulls_fixture, 33],
292-
[41, nulls_fixture, 43],
293-
[51, nulls_fixture, 53],
294-
]
295-
cols = ["a", "b", "c"]
296-
df = DataFrame(arr, columns=cols, dtype="int64").set_index(["a", "b"])
297-
start = df.index[idx1]
298-
end = df.index[idx2]
299-
result = df.loc[start:end, :]
300-
expected = DataFrame(arr[idx1 : (idx2 + 1)], columns=cols, dtype="int64").set_index(
301-
["a", "b"]
302-
)
303-
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)