You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In [5]: mi=pd.MultiIndex.from_product([list('abc'), list('xy'), [1,2]],names=['abc','xy','num'])
In [6]: mi.namesOut[6]: FrozenList(['abc', 'xy', 'num'])
In [7]: mi.rename(['def','v'], level=[0,2]).namesOut[7]: FrozenList(['def', 'xy', 'v'])
In [8]: mi.rename({'xy' : 'foo'})
---------------------------------------------------------------------------# Traceback omittedValueError: LengthofnamesmustmatchnumberoflevelsinMultiIndex.
Problem description
In coordination with how DataFrame.rename() supports using a dictionary to rename columns, I think it would be worthwhile to allow MultiIndex.rename() to also support a dictionary argument. The value of this is that you then don't need to know the level numbers of each of the index names.
If implemented, this would also help with issue #17334, since we would then implement MultiIndex.rename with its own docstring.
Output of pd.show_versions()
INSTALLED VERSIONS
commit: 01882ba
python: 3.6.4.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
Code Sample, a copy-pastable example if possible
Problem description
In coordination with how
DataFrame.rename()
supports using a dictionary to rename columns, I think it would be worthwhile to allowMultiIndex.rename()
to also support a dictionary argument. The value of this is that you then don't need to know the level numbers of each of the index names.If implemented, this would also help with issue #17334, since we would then implement
MultiIndex.rename
with its own docstring.Output of
pd.show_versions()
INSTALLED VERSIONS
commit: 01882ba
python: 3.6.4.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None
pandas: 0.23.0.dev0+657.g01882ba5b
pytest: 3.4.0
pip: 9.0.1
setuptools: 38.5.1
Cython: 0.25.1
numpy: 1.14.1
scipy: 1.0.0
pyarrow: 0.8.0
xarray: None
IPython: 6.2.1
sphinx: 1.7.1
patsy: 0.5.0
dateutil: 2.6.1
pytz: 2018.3
blosc: 1.5.1
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.4
feather: None
matplotlib: 2.2.0
openpyxl: 2.5.0
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.1
bs4: 4.6.0
html5lib: 1.0.1
sqlalchemy: 1.2.5
pymysql: 0.8.0
psycopg2: None
jinja2: 2.10
s3fs: 0.1.3
fastparquet: None
pandas_gbq: None
pandas_datareader: None
The text was updated successfully, but these errors were encountered: