Skip to content

Commit 60c3f9f

Browse files
committed
Add tests for single level indexing with loc(axis=1)
1 parent 404e6ba commit 60c3f9f

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

pandas/tests/indexing/multiindex/test_slice.py

+23
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,29 @@ 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_indexer(self):
496+
497+
# test single level indexing on Multindex column dataframe
498+
df1 = 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 = df1.loc(axis=1)["a1":"a2"]
505+
expected = df1.iloc[:, :-3]
506+
tm.assert_frame_equal(result, expected)
507+
result = df1.loc(axis=1)["a1"]
508+
expected = df1.iloc[:, :3]
509+
expected.columns = ["b1", "b2", "b3"]
510+
tm.assert_frame_equal(result, expected)
511+
512+
# test single level indexing on single index column data frame
513+
df2 = pd.DataFrame(np.arange(9).reshape(3, 3), columns=["a", "b", "c"])
514+
result = df2.loc(axis=1)["a"]
515+
expected = pd.Series([0, 3, 6], dtype="int64", name="a")
516+
tm.assert_series_equal(result, expected)
517+
495518
def test_per_axis_per_level_setitem(self):
496519

497520
# test index maker

0 commit comments

Comments
 (0)