From 858d114dfe3faa1064841cabfb8c0f334b67db0f Mon Sep 17 00:00:00 2001 From: jreback Date: Thu, 19 Dec 2013 12:29:06 -0500 Subject: [PATCH] API/REGRESS: partial revert of f8b6208675b5b10d73a74f50478fa5e37b43fc02 allow assignment of a column in a frame with a scalar with no index (so adds to the columns), instead of raising; this preservers 0.12 behavior --- pandas/core/frame.py | 7 ++++--- pandas/tests/test_indexing.py | 10 ++++------ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 4d6af77880747..8a3869d15c85f 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -1916,10 +1916,11 @@ def _ensure_valid_index(self, value): 'Series') self._data.set_axis(1, value.index.copy(), check_axis=False) + # we are a scalar + # noop else: - raise ValueError('Cannot set a frame with no defined index ' - 'and a value that cannot be converted to a ' - 'Series') + + pass def _set_item(self, key, value): """ diff --git a/pandas/tests/test_indexing.py b/pandas/tests/test_indexing.py index 11bf985bea041..c7fb209b4aacb 100644 --- a/pandas/tests/test_indexing.py +++ b/pandas/tests/test_indexing.py @@ -1778,14 +1778,12 @@ def f(): # don't create rows when empty df = DataFrame({"A": [1, 2, 3], "B": [1.2, 4.2, 5.2]}) y = df[df.A > 5] - def f(): - y['New'] = np.nan - self.assertRaises(ValueError, f) + y['New'] = np.nan + assert_frame_equal(y,DataFrame(columns=['A','B','New'])) df = DataFrame(columns=['a', 'b', 'c c']) - def f(): - df['d'] = 3 - self.assertRaises(ValueError, f) + df['d'] = 3 + assert_frame_equal(df,DataFrame(columns=['a','b','c c','d'])) assert_series_equal(df['c c'],Series(name='c c',dtype=object)) # reindex columns is ok