From b4aa0fe2f87ffb2c8ef0a5eb5ce665eaee71d35b Mon Sep 17 00:00:00 2001 From: Corinne Bosley Date: Wed, 26 Sep 2018 09:31:09 +0100 Subject: [PATCH 1/3] turn columns object into pandas array, plus test included cml this time --- lib/iris/pandas.py | 3 ++- .../pandas/as_cube/data_frame_multidim.cml | 15 +++++++++++++++ lib/iris/tests/test_pandas.py | 11 +++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml diff --git a/lib/iris/pandas.py b/lib/iris/pandas.py index 244a7c011b..9a1b24691a 100644 --- a/lib/iris/pandas.py +++ b/lib/iris/pandas.py @@ -115,7 +115,8 @@ def as_cube(pandas_array, copy=True, calendars=None): _add_iris_coord(cube, "index", pandas_array.index, 0, calendars.get(0, None)) if pandas_array.ndim == 2: - _add_iris_coord(cube, "columns", pandas_array.columns, 1, + _add_iris_coord(cube, "columns", np.array([k for k in + pandas_array.columns]), 1, calendars.get(1, None)) return cube diff --git a/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml b/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml new file mode 100644 index 0000000000..01b28dbf35 --- /dev/null +++ b/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/lib/iris/tests/test_pandas.py b/lib/iris/tests/test_pandas.py index aec432692a..51a163b728 100644 --- a/lib/iris/tests/test_pandas.py +++ b/lib/iris/tests/test_pandas.py @@ -398,6 +398,17 @@ def test_data_frame_masked(self): tests.get_result_path(('pandas', 'as_cube', 'data_frame_masked.cml'))) + def test_data_frame_multidim(self): + data_frame = pandas.DataFrame([[0, 1, 2, 3, 4], + [5, 6, 7, 8, 9]], + index=[0, 1], + columns=['col_1', 'col_2', 'col_3', + 'col_4', 'col_5']) + self.assertCML( + iris.pandas.as_cube(data_frame), + tests.get_result_path(('pandas', 'as_cube', + 'data_frame_multidim.cml'))) + def test_data_frame_cftime_360(self): data_frame = pandas.DataFrame( [[0, 1, 2, 3, 4], From e0f1782adbff3f9ec4f5578395f2b735ee926739 Mon Sep 17 00:00:00 2001 From: Corinne Bosley Date: Mon, 1 Oct 2018 15:58:05 +0100 Subject: [PATCH 2/3] made things the way pandas like it; bambooish --- lib/iris/pandas.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/iris/pandas.py b/lib/iris/pandas.py index 9a1b24691a..798e034017 100644 --- a/lib/iris/pandas.py +++ b/lib/iris/pandas.py @@ -115,8 +115,7 @@ def as_cube(pandas_array, copy=True, calendars=None): _add_iris_coord(cube, "index", pandas_array.index, 0, calendars.get(0, None)) if pandas_array.ndim == 2: - _add_iris_coord(cube, "columns", np.array([k for k in - pandas_array.columns]), 1, + _add_iris_coord(cube, "columns", pandas_array.columns.values, 1, calendars.get(1, None)) return cube From 10305e4cacfc4a7244a9ebaeb76ed44ec6597664 Mon Sep 17 00:00:00 2001 From: Corinne Bosley Date: Mon, 1 Oct 2018 16:54:15 +0100 Subject: [PATCH 3/3] regenerated cml to match output --- lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml b/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml index 01b28dbf35..d377fa72d8 100644 --- a/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml +++ b/lib/iris/tests/results/pandas/as_cube/data_frame_multidim.cml @@ -3,7 +3,7 @@ - +