Description
Code Sample, a copy-pastable example if possible
In [2]: s = pd.Series(range(4))
In [3]: s.reset_index('wrong', drop=True)
Out[3]:
0 0
1 1
2 2
3 3
dtype: int64
In [4]: s.reset_index('wrong')
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-4-a7b872dfe0cf> in <module>()
----> 1 s.reset_index('wrong')
~/nobackup/repo/pandas/pandas/core/series.py in reset_index(self, level, drop, name, inplace)
1215 else:
1216 df = self.to_frame(name)
-> 1217 return df.reset_index(level=level, drop=drop)
1218
1219 def __unicode__(self):
~/nobackup/repo/pandas/pandas/core/frame.py in reset_index(self, level, drop, inplace, col_level, col_fill)
4098 if not isinstance(level, (tuple, list)):
4099 level = [level]
-> 4100 level = [self.index._get_level_number(lev) for lev in level]
4101 if isinstance(self.index, MultiIndex):
4102 if len(level) < self.index.nlevels:
~/nobackup/repo/pandas/pandas/core/frame.py in <listcomp>(.0)
4098 if not isinstance(level, (tuple, list)):
4099 level = [level]
-> 4100 level = [self.index._get_level_number(lev) for lev in level]
4101 if isinstance(self.index, MultiIndex):
4102 if len(level) < self.index.nlevels:
~/nobackup/repo/pandas/pandas/core/indexes/base.py in _get_level_number(self, level)
1944
1945 def _get_level_number(self, level):
-> 1946 self._validate_index_level(level)
1947 return 0
1948
~/nobackup/repo/pandas/pandas/core/indexes/base.py in _validate_index_level(self, level)
1941 elif level != self.name:
1942 raise KeyError('Level %s must be same as name (%s)' %
-> 1943 (level, self.name))
1944
1945 def _get_level_number(self, level):
KeyError: 'Level wrong must be same as name (None)'
In [5]: s = pd.Series(range(4), index=pd.MultiIndex.from_product([[1, 2]]*2))
In [6]: s.reset_index('wrong', drop=True)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
~/nobackup/repo/pandas/pandas/core/indexes/multi.py in _get_level_number(self, level)
775 'level number' % level)
--> 776 level = self.names.index(level)
777 except ValueError:
ValueError: 'wrong' is not in list
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
<ipython-input-6-e0d143f488d8> in <module>()
----> 1 s.reset_index('wrong', drop=True)
~/nobackup/repo/pandas/pandas/core/series.py in reset_index(self, level, drop, name, inplace)
1199 if not isinstance(level, (tuple, list)):
1200 level = [level]
-> 1201 level = [self.index._get_level_number(lev) for lev in level]
1202 if len(level) < len(self.index.levels):
1203 new_index = self.index.droplevel(level)
~/nobackup/repo/pandas/pandas/core/series.py in <listcomp>(.0)
1199 if not isinstance(level, (tuple, list)):
1200 level = [level]
-> 1201 level = [self.index._get_level_number(lev) for lev in level]
1202 if len(level) < len(self.index.levels):
1203 new_index = self.index.droplevel(level)
~/nobackup/repo/pandas/pandas/core/indexes/multi.py in _get_level_number(self, level)
777 except ValueError:
778 if not isinstance(level, int):
--> 779 raise KeyError('Level %s not found' % str(level))
780 elif level < 0:
781 level += self.nlevels
KeyError: 'Level wrong not found'
Problem description
In [3]:
should raise too.
Expected Output
Same as In [4]:
Output of pd.show_versions()
INSTALLED VERSIONS
commit: None
python: 3.5.3.final.0
python-bits: 64
OS: Linux
OS-release: 4.9.0-6-amd64
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: it_IT.UTF-8
LOCALE: it_IT.UTF-8
pandas: 0.23.0.dev0+825.ga3facfc55
pytest: 3.5.0
pip: 9.0.1
setuptools: 39.0.1
Cython: 0.25.2
numpy: 1.14.1
scipy: 0.19.0
pyarrow: None
xarray: None
IPython: 6.2.1
sphinx: 1.5.6
patsy: 0.5.0
dateutil: 2.7.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.0dev
tables: 3.3.0
numexpr: 2.6.1
feather: 0.3.1
matplotlib: 2.0.0
openpyxl: 2.3.0
xlrd: 1.0.0
xlwt: 1.3.0
xlsxwriter: 0.9.6
lxml: 4.1.1
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.0.15
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.2.1