From 65b2392d1a88f044d3b5e1d20cb0b69211c817a8 Mon Sep 17 00:00:00 2001 From: Kernc Date: Tue, 10 Oct 2017 20:28:47 +0200 Subject: [PATCH] fixup: further fix failing tests --- pandas/core/indexing.py | 5 ----- pandas/core/internals.py | 6 ++---- pandas/tests/sparse/test_frame.py | 13 ++++++++----- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index 74b86532720b9e..f1a3fe81a45404 100755 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -1933,11 +1933,6 @@ def _has_valid_setitem_indexer(self, indexer): def _convert_key(self, key, is_setter=False): """ require integer args (and convert to label arguments) """ - - # allow arbitrary setting - if is_setter: - return list(key) - for a, i in zip(self.obj.axes, key): if not is_integer(i): raise ValueError("iAt based indexing can only have integer " diff --git a/pandas/core/internals.py b/pandas/core/internals.py index 7794a3cb33ff89..aad349f4b131fe 100644 --- a/pandas/core/internals.py +++ b/pandas/core/internals.py @@ -2765,8 +2765,7 @@ def _can_hold_element(self, element): return np.can_cast(np.asarray(element).dtype, self.sp_values.dtype) def _try_coerce_result(self, result): - if ( - # isinstance(result, np.ndarray) and + if (isinstance(result, np.ndarray) and np.ndim(result) > 0 and not is_sparse(result)): result = SparseArray(result, kind=self.kind, @@ -3770,8 +3769,7 @@ def fast_xs(self, loc): # Such assignment may incorrectly coerce NaT to None # result[blk.mgr_locs] = blk._slice((slice(None), loc)) for i, rl in enumerate(blk.mgr_locs): - # result[rl] = blk._try_coerce_result(blk.iget((i, loc))) - result[rl] = blk.iget((i, loc)) + result[rl] = blk._try_coerce_result(blk.iget((i, loc))) return result diff --git a/pandas/tests/sparse/test_frame.py b/pandas/tests/sparse/test_frame.py index 4f15044b2dec92..69f2b771e74900 100644 --- a/pandas/tests/sparse/test_frame.py +++ b/pandas/tests/sparse/test_frame.py @@ -1424,19 +1424,22 @@ def spindex_kind(request): return request.param -@pytest.mark.parametrize('indexer', ['at', 'iat']) -@pytest.mark.parametrize('key', [0]) +@pytest.mark.parametrize('indexer', ['iat']) +@pytest.mark.parametrize('key', [(0, 0)]) def test_frame_assignment_at(spindex_kind, indexer, key): _test_assignment(spindex_kind, indexer, key) -@pytest.mark.parametrize('indexer', ['loc', 'iloc']) -@pytest.mark.parametrize('key', [0, [0, 1], [True, False]]) +@pytest.mark.parametrize('indexer', ['at', 'loc', 'iloc']) +@pytest.mark.parametrize('key', [0, + [0, 1], + [True, False]]) def test_frame_assignment_loc(spindex_kind, indexer, key): _test_assignment(spindex_kind, indexer, key) -@pytest.mark.parametrize('key', [None, [True, False]]) +@pytest.mark.parametrize('key', [None, + [True, False]]) def test_frame_assignment_setitem(spindex_kind, key): _test_assignment(spindex_kind, None, key)