-
-
Notifications
You must be signed in to change notification settings - Fork 18.8k
Closed
Labels
API DesignError ReportingIncorrect or improved errors from pandasIncorrect or improved errors from pandas
Milestone
Description
I'd like to be able to separately trap errors in indexing that are due to the lack of the MultiIndex
being lexsorted. Right now, a KeyError
is raised, and the only way to tell if the error was due to the lack of a lexsort versus a missing key is to look at the text of the message.
So I'd like to avoid code like this:
try:
subdf = df.loc['A':'D','Vals']
except KeyError as ker:
if ker.args[0].startswith("MultiIndex Slicing requires the index to be fully lexsorted"):
print ("Need to handle fact index not sorted")
else:
print ("Need to handle fact that key was missing")
I'd rather write something like:
try:
subdf = df.loc['A':'D','Vals']
except UnsortedIndexError:
print ("Need to handle fact index not sorted")
except KeyError:
print ("Need to handle fact that key was missing")
So could the designers accept a change where a different error is raised in case the index is not lexsorted? If so, I'll implement it.
Metadata
Metadata
Assignees
Labels
API DesignError ReportingIncorrect or improved errors from pandasIncorrect or improved errors from pandas