diff --git a/pandas/core/indexing.py b/pandas/core/indexing.py index ab4ad693a462e..43d453153febd 100755 --- a/pandas/core/indexing.py +++ b/pandas/core/indexing.py @@ -630,6 +630,17 @@ def can_do_equal_len(): self.obj[item_labels[indexer[info_axis]]] = value return + if isinstance(value, ABCDataFrame): + if (len(indexer) > info_axis and + (is_integer(indexer[info_axis]) or + isinstance(indexer[info_axis], np.ndarray)) and + all(com.is_null_slice(idx) + for i, idx in enumerate(indexer) + if i != info_axis) and + item_labels.is_unique): + self.obj[item_labels[indexer[info_axis]]] = value + return + if isinstance(value, (ABCSeries, dict)): # TODO(EA): ExtensionBlock.setitem this causes issues with # setting for extensionarrays that store dicts. Need to decide