-
-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
Bug issue 16819 Index.get_indexer_not_unique inconsistent return types vs get_indexer #16826
Changes from 4 commits
df5bfcf
6b5bd71
e32df12
7e650bd
b710626
d3a77be
05cb9d3
e1b85cb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -1131,6 +1131,17 @@ def test_get_indexer_strings(self): | |
with pytest.raises(TypeError): | ||
idx.get_indexer(['a', 'b', 'c', 'd'], method='pad', tolerance=2) | ||
|
||
def test_get_indexer_consistency(self): | ||
# See GH 16819 | ||
for name, index in self.indices.items(): | ||
indexer = index.get_indexer(index[0:2]) | ||
assert isinstance(indexer, np.ndarray) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. use
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. pls update to use this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Issue with that is that some of the indexes are empty or categorical indexes so not unique positions so can't assume that [0, 1, 2] are returned There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ok |
||
assert indexer.dtype == np.intp | ||
|
||
indexer, _ = index.get_indexer_non_unique(index[0:2]) | ||
assert isinstance(indexer, np.ndarray) | ||
assert indexer.dtype == np.intp | ||
|
||
def test_get_loc(self): | ||
idx = pd.Index([0, 1, 2]) | ||
all_methods = [None, 'pad', 'backfill', 'nearest'] | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -386,8 +386,7 @@ def test_reindexing(self): | |
expected = oidx.get_indexer_non_unique(finder)[0] | ||
|
||
actual = ci.get_indexer(finder) | ||
tm.assert_numpy_array_equal( | ||
expected.values, actual, check_dtype=False) | ||
tm.assert_numpy_array_equal(expected, actual, check_dtype=True) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. check_dtype is True by default |
||
|
||
def test_reindex_dtype(self): | ||
c = CategoricalIndex(['a', 'b', 'c', 'a']) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Index.get_indexer_non_unique()
now returns andarray
indexer rather than anIndex
; this is consistent withIndex.get_indexer()
.put in API breaking changes section.