From ef542b1ed733c55b4ef02ef5f9a71e75ee7f351a Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sat, 12 May 2018 18:44:25 +0530 Subject: [PATCH 01/15] GH20925 Raises appropriate error for Series.reset_index(level_name, drop=True) when index is flat and an invalid level is supplied --- pandas/core/series.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index 0e2ae22f35af7..ce1befdf61740 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -1195,11 +1195,12 @@ def reset_index(self, level=None, drop=False, name=None, inplace=False): inplace = validate_bool_kwarg(inplace, 'inplace') if drop: new_index = com._default_index(len(self)) - if level is not None and isinstance(self.index, MultiIndex): + if level is not None: if not isinstance(level, (tuple, list)): level = [level] + level = set(level) level = [self.index._get_level_number(lev) for lev in level] - if len(level) < len(self.index.levels): + if isinstance(self.index, MultiIndex) and (len(level) < len(self.index.levels)): new_index = self.index.droplevel(level) if inplace: From 837d4da2ee55c1644782acc3c480c012f697c3e5 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sat, 12 May 2018 19:10:14 +0530 Subject: [PATCH 02/15] GH20925 Raises appropriate error for Series.reset_index(level_name, drop=True) when index is flat and an invalid level is supplied --- pandas/core/series.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index ce1befdf61740..9b7d251d3721e 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -1200,8 +1200,9 @@ def reset_index(self, level=None, drop=False, name=None, inplace=False): level = [level] level = set(level) level = [self.index._get_level_number(lev) for lev in level] - if isinstance(self.index, MultiIndex) and (len(level) < len(self.index.levels)): - new_index = self.index.droplevel(level) + if isinstance(self.index, MultiIndex): + if (len(level) < len(self.index.levels)): + new_index = self.index.droplevel(level) if inplace: self.index = new_index From a10f6ac86aff97a29e8c2bfdb213dbb71a36f78a Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sat, 12 May 2018 23:22:52 +0530 Subject: [PATCH 03/15] GH20925 Raises appropriate error for Series.reset_index(level_name, drop=True) when index is flat and an invalid level is supplied --- pandas/tests/series/indexing/test_indexing.py | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 8571fbc10e9bb..86dc96815998b 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -768,3 +768,24 @@ def test_head_tail(test_data): assert_series_equal(test_data.series.head(0), test_data.series[0:0]) assert_series_equal(test_data.series.tail(), test_data.series[-5:]) assert_series_equal(test_data.series.tail(0), test_data.series[0:0]) + +def test_reset_index_drop_errmsg(): + # https://github.com/pandas-dev/pandas/issues/20925 + #Data for Test Case 1 and 2 + s = pd.Series(range(4)) + #Test Case 1 + with tm.assert_raises_regex(KeyError, 'must be same as name'): + s.reset_index('wrong', drop=True) + #Test Case 2 + with tm.assert_raises_regex(KeyError, 'must be same as name'): + s.reset_index('wrong') + #Data for Test Case 3 + s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]]*2)) + #Test Case 3 + with tm.assert_raises_regex(KeyError, 'not found'): + s.reset_index('wrong', drop=True) + #Data for Test Case 4 + s = pd.Series(range(4), name='valid') + #Test Case 4 + with tm.assert_raises_regex(KeyError, 'must be same as name'): + s.reset_index(['valid', 'valid'], drop=True) From 30bc39343d7d8691ae4d078e6f668b6ac3e3d292 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sat, 12 May 2018 23:31:12 +0530 Subject: [PATCH 04/15] GH20925 Raises appropriate error for Series.reset_index(level_name, drop=True) when index is flat and an invalid level is supplied --- pandas/tests/series/indexing/test_indexing.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 86dc96815998b..8d4939b02b521 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -769,23 +769,24 @@ def test_head_tail(test_data): assert_series_equal(test_data.series.tail(), test_data.series[-5:]) assert_series_equal(test_data.series.tail(0), test_data.series[0:0]) + def test_reset_index_drop_errmsg(): # https://github.com/pandas-dev/pandas/issues/20925 - #Data for Test Case 1 and 2 + # Data for Test Case 1 and 2 s = pd.Series(range(4)) - #Test Case 1 + # Test Case 1 with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong', drop=True) - #Test Case 2 + # Test Case 2 with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong') - #Data for Test Case 3 - s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]]*2)) - #Test Case 3 + # Data for Test Case 3 + s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) + # Test Case 3 with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) - #Data for Test Case 4 + # Data for Test Case 4 s = pd.Series(range(4), name='valid') - #Test Case 4 + # Test Case 4 with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index(['valid', 'valid'], drop=True) From cfd70af75777ecd44ac7b498a3a8bebbe48b924f Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sun, 13 May 2018 18:01:40 +0530 Subject: [PATCH 05/15] GH20925 Raises appropriate error for Series.reset_index(level_name, drop=True) when index is flat and invalid level is supplied. Made edits as requested in the review. --- pandas/core/series.py | 3 +-- pandas/tests/series/indexing/test_indexing.py | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/pandas/core/series.py b/pandas/core/series.py index 9b7d251d3721e..6d396e845219e 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -1198,10 +1198,9 @@ def reset_index(self, level=None, drop=False, name=None, inplace=False): if level is not None: if not isinstance(level, (tuple, list)): level = [level] - level = set(level) level = [self.index._get_level_number(lev) for lev in level] if isinstance(self.index, MultiIndex): - if (len(level) < len(self.index.levels)): + if len(level) < self.index.nlevels: new_index = self.index.droplevel(level) if inplace: diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 8d4939b02b521..6ead2a8049610 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -785,8 +785,3 @@ def test_reset_index_drop_errmsg(): # Test Case 3 with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) - # Data for Test Case 4 - s = pd.Series(range(4), name='valid') - # Test Case 4 - with tm.assert_raises_regex(KeyError, 'must be same as name'): - s.reset_index(['valid', 'valid'], drop=True) From 6b87a3a5e44e4e945d9c2cc1bd0b108985a4b31c Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sun, 13 May 2018 19:45:10 +0530 Subject: [PATCH 06/15] GH20925 Made edits to test file for labels and introduced blank spaces between test cases. --- pandas/tests/series/indexing/test_indexing.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 6ead2a8049610..7407e7c8eb3a3 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -772,16 +772,15 @@ def test_head_tail(test_data): def test_reset_index_drop_errmsg(): # https://github.com/pandas-dev/pandas/issues/20925 - # Data for Test Case 1 and 2 + + # Checks that KeyError is raised for series where no 'level' name is defined s = pd.Series(range(4)) - # Test Case 1 with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong', drop=True) - # Test Case 2 with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong') - # Data for Test Case 3 + + # Checks that KeyError is raised for series where 'level' to be dropped is not is defined levels s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) - # Test Case 3 with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) From 50c553e91e9f6f47c0595902cea3664f993cf92b Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sun, 13 May 2018 19:47:28 +0530 Subject: [PATCH 07/15] GH20925 Made edits to test file for labels and introduced blank spaces between test cases. --- pandas/tests/series/indexing/test_indexing.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 7407e7c8eb3a3..7a9159faff0d6 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -773,14 +773,14 @@ def test_head_tail(test_data): def test_reset_index_drop_errmsg(): # https://github.com/pandas-dev/pandas/issues/20925 - # Checks that KeyError is raised for series where no 'level' name is defined + # Check KeyError raised for series where no 'level' name is defined s = pd.Series(range(4)) with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong', drop=True) with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong') - # Checks that KeyError is raised for series where 'level' to be dropped is not is defined levels + # Checks KeyError raised for series where 'level' to be dropped is not defined s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) From 1ecf7c3fac2d32bdc57052e06f89e5fb11777cb0 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sun, 13 May 2018 19:48:17 +0530 Subject: [PATCH 08/15] GH20925 Made edits to test file for labels and introduced blank spaces between test cases. --- pandas/tests/series/indexing/test_indexing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 7a9159faff0d6..dfe8f52b1aa0f 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -780,7 +780,7 @@ def test_reset_index_drop_errmsg(): with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong') - # Checks KeyError raised for series where 'level' to be dropped is not defined + # Check KeyError raised for series where 'level' to be dropped is undefined s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) From 29458904d1e6477654d202a51e15a60ab8d112d4 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Sun, 13 May 2018 19:49:18 +0530 Subject: [PATCH 09/15] GH20925 Made edits to test file for labels and introduced blank spaces between test cases. --- pandas/tests/series/indexing/test_indexing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index dfe8f52b1aa0f..2c99bf5c264a5 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -772,7 +772,7 @@ def test_head_tail(test_data): def test_reset_index_drop_errmsg(): # https://github.com/pandas-dev/pandas/issues/20925 - + # Check KeyError raised for series where no 'level' name is defined s = pd.Series(range(4)) with tm.assert_raises_regex(KeyError, 'must be same as name'): From 284d0160400b79f5ab1e8171711ce9538022a3f1 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Thu, 17 May 2018 07:34:32 +0530 Subject: [PATCH 10/15] GH20925 made suggested edits to tests --- pandas/tests/series/indexing/test_indexing.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 2c99bf5c264a5..325724c811973 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -773,14 +773,19 @@ def test_head_tail(test_data): def test_reset_index_drop_errmsg(): # https://github.com/pandas-dev/pandas/issues/20925 - # Check KeyError raised for series where no 'level' name is defined + # Check KeyError raised for series index where passed level name is missing s = pd.Series(range(4)) with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong', drop=True) with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong') - # Check KeyError raised for series where 'level' to be dropped is undefined + # Check KeyError raised for series where 'level' to be dropped is missing s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) + + #Check that .reset_index([],drop=True) doesn't fail + result = pd.Series(range(4)).reset_index([], drop=True) + expected = pd.Series(range(4)) + assert_series_equal(result, expected) From a413bc907ed86d91543bd6faa567ffeb43e52833 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Thu, 17 May 2018 07:35:44 +0530 Subject: [PATCH 11/15] GH20925 made suggested edits to tests --- pandas/tests/series/indexing/test_indexing.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 325724c811973..48f2401e4dc5e 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -785,7 +785,7 @@ def test_reset_index_drop_errmsg(): with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) - #Check that .reset_index([],drop=True) doesn't fail + # Check that .reset_index([],drop=True) doesn't fail result = pd.Series(range(4)).reset_index([], drop=True) expected = pd.Series(range(4)) assert_series_equal(result, expected) From f08ea706255286ea61ecea6ae06cb572a9aca9b7 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Thu, 17 May 2018 18:55:52 +0530 Subject: [PATCH 12/15] GH20925 Made requested changes, moved test to pandas/tests/series/test_alter_axes.py --- pandas/tests/series/indexing/test_indexing.py | 20 ------------------ pandas/tests/series/test_alter_axes.py | 21 +++++++++++++++++++ 2 files changed, 21 insertions(+), 20 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 48f2401e4dc5e..97c72ff026b9d 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -769,23 +769,3 @@ def test_head_tail(test_data): assert_series_equal(test_data.series.tail(), test_data.series[-5:]) assert_series_equal(test_data.series.tail(0), test_data.series[0:0]) - -def test_reset_index_drop_errmsg(): - # https://github.com/pandas-dev/pandas/issues/20925 - - # Check KeyError raised for series index where passed level name is missing - s = pd.Series(range(4)) - with tm.assert_raises_regex(KeyError, 'must be same as name'): - s.reset_index('wrong', drop=True) - with tm.assert_raises_regex(KeyError, 'must be same as name'): - s.reset_index('wrong') - - # Check KeyError raised for series where 'level' to be dropped is missing - s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) - with tm.assert_raises_regex(KeyError, 'not found'): - s.reset_index('wrong', drop=True) - - # Check that .reset_index([],drop=True) doesn't fail - result = pd.Series(range(4)).reset_index([], drop=True) - expected = pd.Series(range(4)) - assert_series_equal(result, expected) diff --git a/pandas/tests/series/test_alter_axes.py b/pandas/tests/series/test_alter_axes.py index dce4e82cbdcf1..f67cf7e41a97d 100644 --- a/pandas/tests/series/test_alter_axes.py +++ b/pandas/tests/series/test_alter_axes.py @@ -188,6 +188,11 @@ def test_reset_index_level(self): with tm.assert_raises_regex(IndexError, 'Too many levels'): s.reset_index(level=[0, 1, 2]) + # Check that .reset_index([],drop=True) doesn't fail + result = pd.Series(range(4)).reset_index([], drop=True) + expected = pd.Series(range(4)) + assert_series_equal(result, expected) + def test_reset_index_range(self): # GH 12071 s = pd.Series(range(2), name='A', dtype='int64') @@ -275,3 +280,19 @@ def test_set_axis_prior_to_deprecation_signature(self): with tm.assert_produces_warning(FutureWarning): result = s.set_axis(0, list('abcd'), inplace=False) tm.assert_series_equal(result, expected) + + def test_reset_index_drop_errors(self): + # GH 20925 + + # Check KeyError raised for series index where passed level name is missing + s = pd.Series(range(4)) + with tm.assert_raises_regex(KeyError, 'must be same as name'): + s.reset_index('wrong', drop=True) + with tm.assert_raises_regex(KeyError, 'must be same as name'): + s.reset_index('wrong') + + # Check KeyError raised for series where 'level' to be dropped is missing + s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) + with tm.assert_raises_regex(KeyError, 'not found'): + s.reset_index('wrong', drop=True) + From 03226f77984df56beed64c857247e64bd9c2c323 Mon Sep 17 00:00:00 2001 From: KalyanGokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Thu, 17 May 2018 19:02:35 +0530 Subject: [PATCH 13/15] GH20925 Made requested changes, moved test to pandas/tests/series/test_alter_axes.py --- pandas/tests/series/indexing/test_indexing.py | 1 - pandas/tests/series/test_alter_axes.py | 9 ++++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pandas/tests/series/indexing/test_indexing.py b/pandas/tests/series/indexing/test_indexing.py index 97c72ff026b9d..8571fbc10e9bb 100644 --- a/pandas/tests/series/indexing/test_indexing.py +++ b/pandas/tests/series/indexing/test_indexing.py @@ -768,4 +768,3 @@ def test_head_tail(test_data): assert_series_equal(test_data.series.head(0), test_data.series[0:0]) assert_series_equal(test_data.series.tail(), test_data.series[-5:]) assert_series_equal(test_data.series.tail(0), test_data.series[0:0]) - diff --git a/pandas/tests/series/test_alter_axes.py b/pandas/tests/series/test_alter_axes.py index f67cf7e41a97d..859082a7e722d 100644 --- a/pandas/tests/series/test_alter_axes.py +++ b/pandas/tests/series/test_alter_axes.py @@ -283,16 +283,15 @@ def test_set_axis_prior_to_deprecation_signature(self): def test_reset_index_drop_errors(self): # GH 20925 - - # Check KeyError raised for series index where passed level name is missing + + # KeyError raised for series index when passed level name is missing s = pd.Series(range(4)) with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong', drop=True) with tm.assert_raises_regex(KeyError, 'must be same as name'): s.reset_index('wrong') - - # Check KeyError raised for series where 'level' to be dropped is missing + + # KeyError raised for series when level to be dropped is missing s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]] * 2)) with tm.assert_raises_regex(KeyError, 'not found'): s.reset_index('wrong', drop=True) - From 71d23a19cd0ec182ca3b393ee61ee4fca2448d19 Mon Sep 17 00:00:00 2001 From: Kalyan Gokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Thu, 17 May 2018 23:42:00 +0530 Subject: [PATCH 14/15] Update v0.23.1.txt --- doc/source/whatsnew/v0.23.1.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v0.23.1.txt b/doc/source/whatsnew/v0.23.1.txt index 35d150dc263b8..0b07570607731 100644 --- a/doc/source/whatsnew/v0.23.1.txt +++ b/doc/source/whatsnew/v0.23.1.txt @@ -59,7 +59,7 @@ Conversion Indexing ^^^^^^^^ -- +- Bug in :meth:`Series.reset_index` where appropriate error was not raised with a non-named level (:issue:`20925`) - I/O From c9afed385b7b5052aea983e65fd8bcc97a0341cb Mon Sep 17 00:00:00 2001 From: Kalyan Gokhale <4734245+KalyanGokhale@users.noreply.github.com> Date: Fri, 18 May 2018 06:57:52 +0530 Subject: [PATCH 15/15] Update v0.23.1.txt --- doc/source/whatsnew/v0.23.1.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/source/whatsnew/v0.23.1.txt b/doc/source/whatsnew/v0.23.1.txt index 0b07570607731..90780f118016c 100644 --- a/doc/source/whatsnew/v0.23.1.txt +++ b/doc/source/whatsnew/v0.23.1.txt @@ -59,7 +59,7 @@ Conversion Indexing ^^^^^^^^ -- Bug in :meth:`Series.reset_index` where appropriate error was not raised with a non-named level (:issue:`20925`) +- Bug in :meth:`Series.reset_index` where appropriate error was not raised with an invalid level name (:issue:`20925`) - I/O