|
1 | 1 | import numpy as np
|
2 | 2 | import pytest
|
3 | 3 |
|
4 |
| -import pandas as pd |
5 | 4 | from pandas import DataFrame, Index, MultiIndex, Series
|
6 | 5 | import pandas._testing as tm
|
7 | 6 | from pandas.core.indexing import IndexingError
|
@@ -282,30 +281,23 @@ def test_loc_empty_multiindex():
|
282 | 281 | tm.assert_frame_equal(result, expected)
|
283 | 282 |
|
284 | 283 |
|
285 |
| -@pytest.mark.parametrize("nan", [np.nan, pd.NA, None]) |
286 |
| -def test_loc_nan_multiindex(nan): |
| 284 | +@pytest.mark.parametrize("idx1,idx2", [(0, 1), (1, 4), (1, 3)]) |
| 285 | +def test_loc_nan_multiindex(nulls_fixture, idx1, idx2): |
287 | 286 | # GH#29751
|
288 |
| - # tests to check loc on a multiindex containing nan values |
| 287 | + # loc on a multiindex containing nan values |
289 | 288 | arr = [
|
290 |
| - [11, nan, 13], |
291 |
| - [21, nan, 23], |
292 |
| - [31, nan, 33], |
293 |
| - [41, nan, 43], |
294 |
| - [51, nan, 53], |
| 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], |
295 | 294 | ]
|
296 | 295 | cols = ["a", "b", "c"]
|
297 |
| - df = DataFrame(arr, columns=cols, dtype="int").set_index(["a", "b"]) |
298 |
| - idx = df.index[1] |
299 |
| - result = df.loc[:idx, :] |
300 |
| - expected = DataFrame(arr[:2], columns=cols, dtype="int").set_index(["a", "b"]) |
301 |
| - tm.assert_frame_equal(result, expected) |
302 |
| - |
303 |
| - result = df.loc[idx:, :] |
304 |
| - expected = DataFrame(arr[1:], columns=cols).set_index(["a", "b"]) |
305 |
| - tm.assert_frame_equal(result, expected) |
306 |
| - |
307 |
| - idx1 = df.index[1] |
308 |
| - idx2 = df.index[3] |
309 |
| - result = df.loc[idx1:idx2, :] |
310 |
| - expected = DataFrame(arr[1:4], columns=cols).set_index(["a", "b"]) |
| 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 | + ) |
311 | 303 | tm.assert_frame_equal(result, expected)
|
0 commit comments