diff --git a/pandas/core/common.py b/pandas/core/common.py index 7a78539c10a98..e016d6f7ef3fc 100644 --- a/pandas/core/common.py +++ b/pandas/core/common.py @@ -1028,7 +1028,7 @@ def _possibly_convert_platform(values): if isinstance(values, (list,tuple)): values = lib.list_to_object_array(values) - if values.dtype == np.object_: + if getattr(values,'dtype',None) == np.object_: values = lib.maybe_convert_objects(values) return values diff --git a/pandas/tests/test_frame.py b/pandas/tests/test_frame.py index f4f04d5a53579..2d5183191c20b 100644 --- a/pandas/tests/test_frame.py +++ b/pandas/tests/test_frame.py @@ -2040,6 +2040,15 @@ def test_constructor_dtype_list_data(self): self.assert_(df.ix[1, 0] is None) self.assert_(df.ix[0, 1] == '2') + def test_constructor_list_frames(self): + + # GH 3243 + result = DataFrame([DataFrame([])]) + self.assert_(result.shape == (1,0)) + + result = DataFrame([DataFrame(dict(A = range(5)))]) + self.assert_(type(result.iloc[0,0]) == DataFrame) + def test_constructor_mixed_dtypes(self): def _make_mixed_dtypes_df(typ, ad = None):