Skip to content

Commit 0cbf399

Browse files
ryankarlosjreback
authored andcommitted
TST: Add tests for single level indexing with loc(axis=1) (#29519)
1 parent 4b3027f commit 0cbf399

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

pandas/tests/indexing/multiindex/test_slice.py

+38
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,44 @@ def test_loc_axis_arguments(self):
492492
with pytest.raises(ValueError):
493493
df.loc(axis="foo")[:, :, ["C1", "C3"]]
494494

495+
def test_loc_axis_single_level_multi_col_indexing_multiindex_col_df(self):
496+
497+
# GH29519
498+
df = pd.DataFrame(
499+
np.arange(27).reshape(3, 9),
500+
columns=pd.MultiIndex.from_product(
501+
[["a1", "a2", "a3"], ["b1", "b2", "b3"]]
502+
),
503+
)
504+
result = df.loc(axis=1)["a1":"a2"]
505+
expected = df.iloc[:, :-3]
506+
507+
tm.assert_frame_equal(result, expected)
508+
509+
def test_loc_axis_single_level_single_col_indexing_multiindex_col_df(self):
510+
511+
# GH29519
512+
df = pd.DataFrame(
513+
np.arange(27).reshape(3, 9),
514+
columns=pd.MultiIndex.from_product(
515+
[["a1", "a2", "a3"], ["b1", "b2", "b3"]]
516+
),
517+
)
518+
result = df.loc(axis=1)["a1"]
519+
expected = df.iloc[:, :3]
520+
expected.columns = ["b1", "b2", "b3"]
521+
522+
tm.assert_frame_equal(result, expected)
523+
524+
def test_loc_ax_single_level_indexer_simple_df(self):
525+
526+
# GH29519
527+
# test single level indexing on single index column data frame
528+
df = pd.DataFrame(np.arange(9).reshape(3, 3), columns=["a", "b", "c"])
529+
result = df.loc(axis=1)["a"]
530+
expected = pd.Series(np.array([0, 3, 6]), name="a")
531+
tm.assert_series_equal(result, expected)
532+
495533
def test_per_axis_per_level_setitem(self):
496534

497535
# test index maker

0 commit comments

Comments
 (0)