MCPcopy
hub / github.com/pandas-dev/pandas / test_level_with_tuples

Method test_level_with_tuples

pandas/tests/test_multilevel.py:141–187  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

139 df = df._consolidate()
140
141 def test_level_with_tuples(self):
142 index = MultiIndex(
143 levels=[[("foo", "bar", 0), ("foo", "baz", 0), ("foo", "qux", 0)], [0, 1]],
144 codes=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]],
145 )
146
147 series = Series(np.random.default_rng(2).standard_normal(6), index=index)
148 frame = DataFrame(np.random.default_rng(2).standard_normal((6, 4)), index=index)
149
150 result = series[("foo", "bar", 0)]
151 result2 = series.loc[("foo", "bar", 0)]
152 expected = series[:2]
153 expected.index = expected.index.droplevel(0)
154 tm.assert_series_equal(result, expected)
155 tm.assert_series_equal(result2, expected)
156
157 with pytest.raises(KeyError, match=r"^\(\('foo', 'bar', 0\), 2\)$"):
158 series[("foo", "bar", 0), 2]
159
160 result = frame.loc[("foo", "bar", 0)]
161 result2 = frame.xs(("foo", "bar", 0))
162 expected = frame[:2]
163 expected.index = expected.index.droplevel(0)
164 tm.assert_frame_equal(result, expected)
165 tm.assert_frame_equal(result2, expected)
166
167 index = MultiIndex(
168 levels=[[("foo", "bar"), ("foo", "baz"), ("foo", "qux")], [0, 1]],
169 codes=[[0, 0, 1, 1, 2, 2], [0, 1, 0, 1, 0, 1]],
170 )
171
172 series = Series(np.random.default_rng(2).standard_normal(6), index=index)
173 frame = DataFrame(np.random.default_rng(2).standard_normal((6, 4)), index=index)
174
175 result = series[("foo", "bar")]
176 result2 = series.loc[("foo", "bar")]
177 expected = series[:2]
178 expected.index = expected.index.droplevel(0)
179 tm.assert_series_equal(result, expected)
180 tm.assert_series_equal(result2, expected)
181
182 result = frame.loc[("foo", "bar")]
183 result2 = frame.xs(("foo", "bar"))
184 expected = frame[:2]
185 expected.index = expected.index.droplevel(0)
186 tm.assert_frame_equal(result, expected)
187 tm.assert_frame_equal(result2, expected)
188
189 def test_reindex_level_partial_selection(self, multiindex_dataframe_random_data):
190 frame = multiindex_dataframe_random_data

Callers

nothing calls this directly

Calls 6

MultiIndexClass · 0.90
SeriesClass · 0.90
DataFrameClass · 0.90
xsMethod · 0.80
droplevelMethod · 0.45
raisesMethod · 0.45

Tested by

no test coverage detected