@@ -201,39 +201,42 @@ def test_reset_index_name(self):
201
201
assert return_value is None
202
202
assert df .index .name is None
203
203
204
- def test_reset_index_level (self ):
204
+ @pytest .mark .parametrize ("levels" , [["A" , "B" ], [0 , 1 ]])
205
+ def test_reset_index_level (self , levels ):
205
206
df = DataFrame ([[1 , 2 , 3 , 4 ], [5 , 6 , 7 , 8 ]], columns = ["A" , "B" , "C" , "D" ])
206
207
207
- for levels in ["A" , "B" ], [0 , 1 ]:
208
- # With MultiIndex
209
- result = df .set_index (["A" , "B" ]).reset_index (level = levels [0 ])
210
- tm .assert_frame_equal (result , df .set_index ("B" ))
208
+ # With MultiIndex
209
+ result = df .set_index (["A" , "B" ]).reset_index (level = levels [0 ])
210
+ tm .assert_frame_equal (result , df .set_index ("B" ))
211
211
212
- result = df .set_index (["A" , "B" ]).reset_index (level = levels [:1 ])
213
- tm .assert_frame_equal (result , df .set_index ("B" ))
212
+ result = df .set_index (["A" , "B" ]).reset_index (level = levels [:1 ])
213
+ tm .assert_frame_equal (result , df .set_index ("B" ))
214
214
215
- result = df .set_index (["A" , "B" ]).reset_index (level = levels )
216
- tm .assert_frame_equal (result , df )
215
+ result = df .set_index (["A" , "B" ]).reset_index (level = levels )
216
+ tm .assert_frame_equal (result , df )
217
217
218
- result = df .set_index (["A" , "B" ]).reset_index (level = levels , drop = True )
219
- tm .assert_frame_equal (result , df [["C" , "D" ]])
218
+ result = df .set_index (["A" , "B" ]).reset_index (level = levels , drop = True )
219
+ tm .assert_frame_equal (result , df [["C" , "D" ]])
220
220
221
- # With single-level Index (GH 16263)
222
- result = df .set_index ("A" ).reset_index (level = levels [0 ])
223
- tm .assert_frame_equal (result , df )
221
+ # With single-level Index (GH 16263)
222
+ result = df .set_index ("A" ).reset_index (level = levels [0 ])
223
+ tm .assert_frame_equal (result , df )
224
224
225
- result = df .set_index ("A" ).reset_index (level = levels [:1 ])
226
- tm .assert_frame_equal (result , df )
225
+ result = df .set_index ("A" ).reset_index (level = levels [:1 ])
226
+ tm .assert_frame_equal (result , df )
227
227
228
- result = df .set_index (["A" ]).reset_index (level = levels [0 ], drop = True )
229
- tm .assert_frame_equal (result , df [["B" , "C" , "D" ]])
228
+ result = df .set_index (["A" ]).reset_index (level = levels [0 ], drop = True )
229
+ tm .assert_frame_equal (result , df [["B" , "C" , "D" ]])
230
230
231
+ @pytest .mark .parametrize ("idx_lev" , [["A" , "B" ], ["A" ]])
232
+ def test_reset_index_level_missing (self , idx_lev ):
231
233
# Missing levels - for both MultiIndex and single-level Index:
232
- for idx_lev in ["A" , "B" ], ["A" ]:
233
- with pytest .raises (KeyError , match = r"(L|l)evel \(?E\)?" ):
234
- df .set_index (idx_lev ).reset_index (level = ["A" , "E" ])
235
- with pytest .raises (IndexError , match = "Too many levels" ):
236
- df .set_index (idx_lev ).reset_index (level = [0 , 1 , 2 ])
234
+ df = DataFrame ([[1 , 2 , 3 , 4 ], [5 , 6 , 7 , 8 ]], columns = ["A" , "B" , "C" , "D" ])
235
+
236
+ with pytest .raises (KeyError , match = r"(L|l)evel \(?E\)?" ):
237
+ df .set_index (idx_lev ).reset_index (level = ["A" , "E" ])
238
+ with pytest .raises (IndexError , match = "Too many levels" ):
239
+ df .set_index (idx_lev ).reset_index (level = [0 , 1 , 2 ])
237
240
238
241
def test_reset_index_right_dtype (self ):
239
242
time = np .arange (0.0 , 10 , np .sqrt (2 ) / 2 )
0 commit comments