|
1 | 1 | import numpy as np
|
2 | 2 | import pytest
|
3 | 3 |
|
4 |
| -from pandas import DataFrame, Index, MultiIndex, Series, concat, date_range |
| 4 | +from pandas import DataFrame, Index, IndexSlice, MultiIndex, Series, concat, date_range |
5 | 5 | import pandas._testing as tm
|
6 | 6 | import pandas.core.common as com
|
7 | 7 |
|
@@ -220,6 +220,27 @@ def test_xs_level_series_slice_not_implemented(
|
220 | 220 | s[2000, 3:4]
|
221 | 221 |
|
222 | 222 |
|
| 223 | +def test_xs_IndexSlice_argument_not_implemented(): |
| 224 | + # GH 35301 |
| 225 | + |
| 226 | + index = MultiIndex( |
| 227 | + levels=[[("foo", "bar", 0), ("foo", "baz", 0), ("foo", "qux", 0)], [0, 1]], |
| 228 | + codes=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]], |
| 229 | + ) |
| 230 | + |
| 231 | + series = Series(np.random.randn(6), index=index) |
| 232 | + frame = DataFrame(np.random.randn(6, 4), index=index) |
| 233 | + |
| 234 | + msg = ( |
| 235 | + "Expected label or tuple of labels, got " |
| 236 | + r"\(\('foo', 'qux', 0\), slice\(None, None, None\)\)" |
| 237 | + ) |
| 238 | + with pytest.raises(TypeError, match=msg): |
| 239 | + frame.xs(IndexSlice[("foo", "qux", 0), :]) |
| 240 | + with pytest.raises(TypeError, match=msg): |
| 241 | + series.xs(IndexSlice[("foo", "qux", 0), :]) |
| 242 | + |
| 243 | + |
223 | 244 | def test_series_getitem_multiindex_xs():
|
224 | 245 | # GH6258
|
225 | 246 | dt = list(date_range("20130903", periods=3))
|
|
0 commit comments