MCPcopy
hub / github.com/pydata/xarray / test_to_dataframe_multiindex

Method test_to_dataframe_multiindex

xarray/tests/test_dataarray.py:3696–3723  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

3694 arr.to_dataframe()
3695
3696 def test_to_dataframe_multiindex(self) -> None:
3697 # regression test for #3008
3698 arr_np = np.random.randn(4, 3)
3699
3700 mindex = pd.MultiIndex.from_product([[1, 2], list("ab")], names=["A", "B"])
3701
3702 arr = DataArray(arr_np, [("MI", mindex), ("C", [5, 6, 7])], name="foo")
3703
3704 actual = arr.to_dataframe()
3705 index_pd = actual.index
3706 assert isinstance(index_pd, pd.MultiIndex)
3707 assert_array_equal(np.asarray(actual["foo"].values), arr_np.flatten())
3708 assert_array_equal(index_pd.names, list("ABC"))
3709 assert_array_equal(index_pd.levels[0], [1, 2])
3710 assert_array_equal(index_pd.levels[1], ["a", "b"])
3711 assert_array_equal(index_pd.levels[2], [5, 6, 7])
3712
3713 # test converting a dataframe MultiIndexed along a single dimension
3714 mindex_single = pd.MultiIndex.from_product(
3715 [list(range(6)), list("ab")], names=["A", "B"]
3716 )
3717
3718 arr_multi_single = DataArray(
3719 arr_np.flatten(), [("MI", mindex_single)], dims="MI", name="test"
3720 )
3721 actual_df = arr_multi_single.to_dataframe()
3722 expected_df = arr_multi_single.to_series().to_frame()
3723 assert expected_df.equals(actual_df)
3724
3725 def test_to_dataframe_0length(self) -> None:
3726 # regression test for #3008

Callers

nothing calls this directly

Calls 4

to_dataframeMethod · 0.95
to_seriesMethod · 0.95
DataArrayClass · 0.90
equalsMethod · 0.45

Tested by

no test coverage detected