-
- Notifications
You must be signed in to change notification settings - Fork 19.4k
Closed
Labels
BugError ReportingIncorrect or improved errors from pandasIncorrect or improved errors from pandasIndexingRelated to indexing on series/frames, not to indexes themselvesRelated to indexing on series/frames, not to indexes themselves
Milestone
Description
Lines 3770 to 3777 in 3a7f956
| def first_valid_index(self): | |
| """ | |
| Return label for first non-NA/null value | |
| """ | |
| if len(self) == 0: | |
| return None | |
| return self.index[self.count(1) > 0][0] |
import pandas as pd import numpy as np df = pd.DataFrame({'a': [np.nan,np.nan]}) df.first_valid_index() This code results in the following error message, which I believe is called because the boolean series returned by self.count(1) > 0 is all False.
Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> df.first_valid_index() File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 3859, in first_valid_index return self.index[self.count(1) > 0][0] File "C:\Python27\lib\site-packages\pandas\indexes\base.py", line 1423, in __getitem__ return getitem(key) IndexError: index 0 is out of bounds for axis 0 with size 0 Should there be a check where None is returned if self.count(1) > 0 is all False?
As an aside, this issue also occurs in df.last_valid_index() for the same reason.
Metadata
Metadata
Assignees
Labels
BugError ReportingIncorrect or improved errors from pandasIncorrect or improved errors from pandasIndexingRelated to indexing on series/frames, not to indexes themselvesRelated to indexing on series/frames, not to indexes themselves