|
21 | 21 |
|
22 | 22 |
|
23 | 23 | class TestMultiLevel: |
24 | | - def test_append(self, multiindex_dataframe_random_data): |
25 | | - frame = multiindex_dataframe_random_data |
26 | | - |
27 | | - a, b = frame[:5], frame[5:] |
28 | | - |
29 | | - result = a.append(b) |
30 | | - tm.assert_frame_equal(result, frame) |
31 | | - |
32 | | - result = a["A"].append(b["A"]) |
33 | | - tm.assert_series_equal(result, frame["A"]) |
34 | | - |
35 | | - def test_dataframe_constructor_infer_multiindex(self): |
36 | | - multi = DataFrame( |
37 | | - np.random.randn(4, 4), |
38 | | - index=[np.array(["a", "a", "b", "b"]), np.array(["x", "y", "x", "y"])], |
39 | | - ) |
40 | | - assert isinstance(multi.index, MultiIndex) |
41 | | - assert not isinstance(multi.columns, MultiIndex) |
42 | | - |
43 | | - multi = DataFrame( |
44 | | - np.random.randn(4, 4), columns=[["a", "a", "b", "b"], ["x", "y", "x", "y"]] |
45 | | - ) |
46 | | - assert isinstance(multi.columns, MultiIndex) |
47 | | - |
48 | | - def test_series_constructor_infer_multiindex(self): |
49 | | - multi = Series( |
50 | | - 1.0, index=[np.array(["a", "a", "b", "b"]), np.array(["x", "y", "x", "y"])] |
51 | | - ) |
52 | | - assert isinstance(multi.index, MultiIndex) |
53 | | - |
54 | | - multi = Series(1.0, index=[["a", "a", "b", "b"], ["x", "y", "x", "y"]]) |
55 | | - assert isinstance(multi.index, MultiIndex) |
56 | | - |
57 | | - multi = Series(range(4), index=[["a", "a", "b", "b"], ["x", "y", "x", "y"]]) |
58 | | - assert isinstance(multi.index, MultiIndex) |
59 | | - |
60 | 24 | def test_reindex_level(self, multiindex_year_month_day_dataframe_random_data): |
61 | 25 | # axis=0 |
62 | 26 | ymd = multiindex_year_month_day_dataframe_random_data |
@@ -278,18 +242,17 @@ def test_std_var_pass_ddof(self): |
278 | 242 | expected = df.groupby(level=0).agg(alt) |
279 | 243 | tm.assert_frame_equal(result, expected) |
280 | 244 |
|
281 | | - def test_frame_series_agg_multiple_levels( |
282 | | - self, multiindex_year_month_day_dataframe_random_data |
| 245 | + @pytest.mark.parametrize("klass", [Series, DataFrame]) |
| 246 | + def test_agg_multiple_levels( |
| 247 | + self, multiindex_year_month_day_dataframe_random_data, klass |
283 | 248 | ): |
284 | 249 | ymd = multiindex_year_month_day_dataframe_random_data |
| 250 | + if klass is Series: |
| 251 | + ymd = ymd["A"] |
285 | 252 |
|
286 | 253 | result = ymd.sum(level=["year", "month"]) |
287 | 254 | expected = ymd.groupby(level=["year", "month"]).sum() |
288 | | - tm.assert_frame_equal(result, expected) |
289 | | - |
290 | | - result = ymd["A"].sum(level=["year", "month"]) |
291 | | - expected = ymd["A"].groupby(level=["year", "month"]).sum() |
292 | | - tm.assert_series_equal(result, expected) |
| 255 | + tm.assert_equal(result, expected) |
293 | 256 |
|
294 | 257 | def test_groupby_multilevel(self, multiindex_year_month_day_dataframe_random_data): |
295 | 258 | ymd = multiindex_year_month_day_dataframe_random_data |
|
0 commit comments