Skip to content

Commit ea7be22

Browse files
committed
TST: add test for multiindex resolver naming
1 parent 2e6e261 commit ea7be22

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

pandas/core/frame.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1911,7 +1911,7 @@ def _get_index_resolvers(self, axis):
19111911
level = i
19121912

19131913
d[key] = Series(axis_index.get_level_values(level).values,
1914-
index=axis_index, name=name)
1914+
index=axis_index, name=level)
19151915

19161916
# put the index/columns itself in the dict
19171917
if isinstance(axis_index, MultiIndex):

pandas/tests/test_frame.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11423,6 +11423,31 @@ def test_query_with_partially_named_multiindex(self):
1142311423
for parser, engine in product(['pandas'], ENGINES):
1142411424
yield self.check_query_with_partially_named_multiindex, parser, engine
1142511425

11426+
def test_query_multiindex_get_index_resolvers(self):
11427+
for parser, engine in product(['pandas'], ENGINES):
11428+
yield self.check_query_multiindex_get_index_resolvers, parser, engine
11429+
11430+
def check_query_multiindex_get_index_resolvers(self, parser, engine):
11431+
df = mkdf(10, 3, r_idx_nlevels=2, r_idx_names=['spam', 'eggs'])
11432+
resolvers = df._get_index_resolvers('index')
11433+
resolvers.update(df._get_index_resolvers('columns'))
11434+
11435+
expected = {'index': df.index,
11436+
'columns': Series(df.columns, index=df.columns,
11437+
name=df.columns.name),
11438+
'spam': Series(df.index.get_level_values('spam'),
11439+
name='spam', index=df.index),
11440+
'eggs': Series(df.index.get_level_values('eggs'),
11441+
name='eggs', index=df.index),
11442+
'C0': Series(df.columns, index=df.columns,
11443+
name=df.columns.name)}
11444+
for k, v in resolvers.items():
11445+
if isinstance(v, Index):
11446+
assert v.is_(expected[k])
11447+
elif isinstance(v, Series):
11448+
tm.assert_series_equal(v, expected[k])
11449+
else:
11450+
raise AssertionError("object must be a Series or Index")
1142611451

1142711452
class TestDataFrameQueryNumExprPandas(unittest.TestCase):
1142811453
@classmethod

0 commit comments

Comments
 (0)