diff --git a/xarray/core/dataset.py b/xarray/core/dataset.py index d5f5e91b8a8..660a349e06d 100644 --- a/xarray/core/dataset.py +++ b/xarray/core/dataset.py @@ -253,6 +253,11 @@ def _set_init_vars_and_dims(self, vars, coords, compat): """ _assert_empty([k for k in vars if k in coords], 'redundant variables and coordinates: %s') + + # Need to coerce Series to a dict as it doesn't implement __iter__ like a mapping + # GH470 + vars = dict(vars) if isinstance(vars, pd.Series) else vars + variables = ChainMap(vars, coords) aligned = align_variables(variables) diff --git a/xarray/test/test_dataset.py b/xarray/test/test_dataset.py index 1e5b93c243f..5d27cce4b69 100644 --- a/xarray/test/test_dataset.py +++ b/xarray/test/test_dataset.py @@ -217,6 +217,7 @@ def test_constructor_pandas_sequence(self): def test_constructor_pandas_single(self): das = [ + DataArray(np.random.rand(4), dims=['a']), # series DataArray(np.random.rand(4,3), dims=['a', 'b']), # df DataArray(np.random.rand(4,3,2), dims=['a','b','c']), # panel ]