Skip to content

Commit 1932e30

Browse files
committed
Tests for previous commit
1 parent bf08d73 commit 1932e30

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pandas/tests/indexing/test_multiindex.py

+32
Original file line numberDiff line numberDiff line change
@@ -158,12 +158,44 @@ def test_loc_getitem_series(self):
158158
result = x.loc[[1, 3]]
159159
tm.assert_series_equal(result, expected)
160160

161+
# GH15424
162+
y1 = Series([1, 3], index=[1, 2])
163+
result = x.loc[y1]
164+
tm.assert_series_equal(result, expected)
165+
161166
empty = Series(data=[], dtype=np.float64)
162167
expected = Series([], index=MultiIndex(
163168
levels=index.levels, labels=[[], []], dtype=np.float64))
164169
result = x.loc[empty]
165170
tm.assert_series_equal(result, expected)
166171

172+
def test_loc_getitem_dataframe(self):
173+
# passing a dataframe as a key with a MultiIndex
174+
index = MultiIndex.from_product([[1, 2, 3], ['A', 'B', 'C']])
175+
x = Series(index=index, data=range(9), dtype=np.float64)
176+
idx_keys = [(1, 'A'), (2, 'C'), (3, 'B')]
177+
y = DataFrame(idx_keys)
178+
expected = Series(
179+
data=[0, 5, 7],
180+
index=MultiIndex.from_tuples(idx_keys),
181+
dtype=np.float64)
182+
result = x.loc[y]
183+
tm.assert_series_equal(result, expected)
184+
185+
result = x.loc[idx_keys]
186+
tm.assert_series_equal(result, expected)
187+
188+
# index should not matter at all:
189+
y1 = DataFrame(idx_keys, index=[1, 2, 7])
190+
result = x.loc[y1]
191+
tm.assert_series_equal(result, expected)
192+
193+
empty = DataFrame(data=[], dtype=np.float64)
194+
expected = Series([], index=MultiIndex(
195+
levels=index.levels, labels=[[], []], dtype=np.float64))
196+
result = x.loc[empty]
197+
tm.assert_series_equal(result, expected)
198+
167199
def test_iloc_getitem_multiindex(self):
168200
mi_labels = DataFrame(np.random.randn(4, 3),
169201
columns=[['i', 'i', 'j'], ['A', 'A', 'B']],

0 commit comments

Comments
 (0)