Skip to content

Multiindex.fillna() throws NotImplementedError but docs indicate it should work #18018

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

Closed
robbuckley opened this issue Oct 29, 2017 · 4 comments · Fixed by #18269
Closed

Multiindex.fillna() throws NotImplementedError but docs indicate it should work #18018

robbuckley opened this issue Oct 29, 2017 · 4 comments · Fixed by #18269
Labels
Docs Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate MultiIndex
Milestone

Comments

@robbuckley
Copy link
Contributor

Code Sample, a copy-pastable example if possible

idx = pd.MultiIndex.from_arrays([['a','b'],[1,np.nan]])
idx.fillna()
idx.values

Problem description

Error trace:

---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-63-feda4f0ee830> in <module>()
      1 idx = pd.MultiIndex.from_arrays([['a','b'],[1,np.nan]])
----> 2 idx.fillna()

~\Anaconda2\envs\python3\lib\site-packages\pandas\core\indexes\multi.py in fillna(self, value, downcast)
    784     def fillna(self, value=None, downcast=None):
    785         # isnull is not implemented for MultiIndex
--> 786         raise NotImplementedError('isnull is not defined for MultiIndex')
    787 
    788     @Appender(_index_shared_docs['dropna'])

NotImplementedError: isnull is not defined for MultiIndex

docs seem to state it should work: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.MultiIndex.fillna.html

I am running v20.3 (anaconda doesnt seem to have 21.0 yet). But i've checked code and docs from both v21.0 and master and it seems to be the same

Expected Output

array([('a', 1.0), ('b', 999)], dtype=object)

Output of pd.show_versions()

INSTALLED VERSIONS

commit: None
python: 3.6.3.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 78 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.20.3
pytest: 3.2.1
pip: 9.0.1
setuptools: 36.5.0.post20170921
Cython: 0.26.1
numpy: 1.13.3
scipy: 0.19.1
xarray: 0.9.6
IPython: 6.1.0
sphinx: 1.6.3
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.2
feather: None
matplotlib: 2.1.0
openpyxl: 2.4.8
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.0
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None

@jreback
Copy link
Contributor

jreback commented Oct 29, 2017

very odd that the doc is showing up at all. Its simply not defined (though it is in a super-class), so maybe bleeding thru somehow.

cc @TomAugspurger

@jreback jreback added Difficulty Novice Docs Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate MultiIndex labels Oct 29, 2017
@jreback jreback added this to the 0.21.1 milestone Oct 29, 2017
@TomAugspurger
Copy link
Contributor

It is defined, but it just raises NotImplementedError. The docstring is inherited though.

We could override the docstring saying it's not implemented, but that's just a short term fix. I'm going to spend some time on our docs over the next couple weeks, so I hope to fix it properly then.

@jorisvandenbossche
Copy link
Member

Yes, this is completely expected.

@robbuckley a short term fix of updating the MultiIndex.fillna docstring is still welcome if you want to do a PR!

@ghasemnaddaf
Copy link
Contributor

ghasemnaddaf commented Nov 10, 2017

@jorisvandenbossche plz see #18209

ghasemnaddaf pushed a commit to ghasemnaddaf/pandas that referenced this issue Nov 13, 2017
ghasemnaddaf pushed a commit to ghasemnaddaf/pandas that referenced this issue Nov 13, 2017
No-Stream pushed a commit to No-Stream/pandas that referenced this issue Nov 14, 2017
…ev#18269)

ENH: gb.is_monotonic_increasing pandas-dev#17015 fix rebase conflicts

parametrized tests for gb.is_monotonic_increasing/decreasing

ENH: gb.is_monotonic_increasing, is_monotonic_decreasing  pandas-dev#17015

added tests for gb.is_monotonically_increasing()/decreasing

parametrized tests for gb.is_monotonic_increasing/decreasing

ENH: gb.is_monotonic_increasing pandas-dev#17015 fix rebase conflicts

ENH: gb.is_monotonic_increasing pandas-dev#17015 fix rebase conflicts

rebase and cleanup

simplified test format

fixed whatsnew to include method tags
TomAugspurger pushed a commit to TomAugspurger/pandas that referenced this issue Dec 8, 2017
TomAugspurger pushed a commit that referenced this issue Dec 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Docs Missing-data np.nan, pd.NaT, pd.NA, dropna, isnull, interpolate MultiIndex
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants