Skip to content

Commit 6bf6274

Browse files
committed
BUG: allow assigning non-scalars in mixed-type DataFrame, no index checks performed, close #1142
1 parent 6d14142 commit 6bf6274

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

pandas/core/indexing.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,6 @@ def _setitem_with_indexer(self, indexer, value):
8383
if isinstance(het_idx, (int, long)):
8484
het_idx = [het_idx]
8585

86-
if not np.isscalar(value):
87-
raise IndexingError('setting on mixed-type frames only '
88-
'allowed with scalar values')
89-
9086
plane_indexer = indexer[:het_axis] + indexer[het_axis + 1:]
9187
item_labels = self.obj._get_axis(het_axis)
9288
for item in item_labels[het_idx]:
@@ -472,7 +468,7 @@ def _is_null_slice(obj):
472468

473469

474470
def _is_integer_dtype(arr):
475-
return (issubclass(arr.dtype.type, np.integer) and
471+
return (issubclass(arr.dtype.type, np.integer) and
476472
not arr.dtype.type == np.datetime64)
477473

478474

pandas/tests/test_frame.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,12 @@ def test_setitem_fancy_mixed_2d(self):
627627
self.assertRaises(Exception, self.mixed_frame.ix.__setitem__,
628628
5, self.mixed_frame.ix[6])
629629

630+
def test_ix_assign_column_mixed(self):
631+
# GH #1142
632+
orig = self.mixed_frame.ix[:, 'B'].copy()
633+
self.mixed_frame.ix[:, 'B'] = self.mixed_frame.ix[:, 'B'] + 1
634+
assert_series_equal(self.mixed_frame.B, orig + 1)
635+
630636
def test_getitem_fancy_1d(self):
631637
f = self.frame
632638
ix = f.ix

0 commit comments

Comments
 (0)