-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
Closed
Labels
API DesignBugMultiIndexReshapingConcat, Merge/Join, Stack/Unstack, ExplodeConcat, Merge/Join, Stack/Unstack, Explode
Milestone
Description
The behaviour below occurs in versions '0.15.0rc1-21-g32c5016' and '0.14.1'.
When the label passed to the drop method of a Series is not in the axis:
(a) if the index is not a MultiIndex then an exception is raised (in most cases; see issue #8530)
(b) if the index is a MultiIndex then an exception is not raised; the original series is returned
Examples of current behaviour:
(a)
>>> pd.Series([10, 20, 30], [1, 2, 3]).drop(7)
ValueError: labels [7] not contained in axis(b)
>>> pd.Series(
[10, 20, 30],
pd.MultiIndex(
levels=[[1, 2, 3], [4, 5, 6]],
labels=[[0, 1, 2], [0, 1, 2]],
names=['a', 'b'])
).drop(7, level='a')
a b
1 4 10
2 5 20
3 6 30
dtype: int64I propose that in (b) an exception be raised. Furthermore, an exception should be raised in (b) if (for instance) the label passed to drop had been 4, because although 4 is in the axis, it is not in the specified level.
The exception message in (b) would have to refer to the level, e.g.:
ValueError: labels [7] not contained in levelgitgithan
Metadata
Metadata
Assignees
Labels
API DesignBugMultiIndexReshapingConcat, Merge/Join, Stack/Unstack, ExplodeConcat, Merge/Join, Stack/Unstack, Explode