New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MultiIndex.get_leves_values() returns inconsistent Index if there are NaNs #17924

toobaz opened this Issue Oct 19, 2017 · 0 comments


None yet
2 participants

toobaz commented Oct 19, 2017

Code Sample, a copy-pastable example if possible

In [3]: pd.MultiIndex.from_arrays([['a', 'b', 'b'], [2, np.nan, 2]]).get_level_values(1)
Out[3]: Int64Index([2.0, nan, 2.0], dtype='float64')

Problem description

An Int64Index should never have dtype='float64'.

Ironically, this is tested extensively in test_get_level_values_na inside pandas/tests/indexes/, except that then the result is explicitly casted (this came out from this comment by Joris).

I'm pretty sure the bug comes from this line, but at the moment I'm not sure what should replace it.

Expected Output

Float64Index([2.0, nan, 2.0], dtype='float64')

Output of pd.show_versions()


commit: 51c5f4d
python-bits: 64
OS: Linux
OS-release: 4.9.0-3-amd64
machine: x86_64
byteorder: little
LC_ALL: None

pandas: 0.21.0rc1+26.g51c5f4d2a
pytest: 3.0.6
pip: 9.0.1
setuptools: None
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
pyarrow: None
xarray: None
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.3.0
numexpr: 2.6.1
feather: 0.3.1
matplotlib: 2.0.0
openpyxl: None
xlrd: 1.0.0
xlwt: 1.1.2
xlsxwriter: 0.9.6
lxml: None
bs4: 4.5.3
html5lib: 0.999999999
sqlalchemy: 1.0.15
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: 0.2.1

@jreback jreback added this to the Next Major Release milestone Oct 20, 2017

@jreback jreback modified the milestones: Next Major Release, 0.22.0 Dec 10, 2017

jreback added a commit that referenced this issue Dec 10, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment