Skip to content

Commit

Permalink
Add some exception cases
Browse files Browse the repository at this point in the history
  • Loading branch information
itholic committed Oct 2, 2019
1 parent 3ec0a43 commit 7cd8889
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 2 deletions.
11 changes: 9 additions & 2 deletions databricks/koalas/series.py
Original file line number Diff line number Diff line change
Expand Up @@ -1590,8 +1590,15 @@ def drop(self,

drop_index_scols = []
for idxes in index:
index_scols = [self._internal.index_scols[lvl] == idx
for lvl, idx in enumerate(idxes, level)]
try:
index_scols = [self._internal.index_scols[lvl] == idx
for lvl, idx in enumerate(idxes, level)]
except IndexError:
if level == 0:
raise KeyError("Key length ({}) exceeds index depth ({})"
.format(len(self._internal.index_scols), len(idxes)))
else:
return self
drop_index_scols.append(reduce(lambda x, y: x & y, index_scols))

sdf = self._internal.sdf.where(~reduce(lambda x, y: x | y, drop_index_scols))
Expand Down
4 changes: 4 additions & 0 deletions databricks/koalas/tests/test_series.py
Original file line number Diff line number Diff line change
Expand Up @@ -688,3 +688,7 @@ def test_drop(self):
msg = "Cannot specify both 'labels' and 'index'"
with self.assertRaisesRegex(ValueError, msg):
kser.drop('lama', index='cow')
msg = r"'Key length \(2\) exceeds index depth \(3\)'"
with self.assertRaisesRegex(KeyError, msg):
kser.drop(('lama', 'speed', 'x'))
self.assert_eq(kser.drop(('lama', 'speed', 'x'), level=1), kser)

0 comments on commit 7cd8889

Please sign in to comment.