@@ -48,31 +48,28 @@ def test_reindex_level(self, multiindex_year_month_day_dataframe_random_data):
48
48
expected = ymd .groupby (level = "month" ).transform (np .sum ).T
49
49
tm .assert_frame_equal (result , expected )
50
50
51
- def test_binops_level (self , multiindex_year_month_day_dataframe_random_data ):
51
+ @pytest .mark .parametrize ("opname" , ["sub" , "add" , "mul" , "div" ])
52
+ def test_binops_level (
53
+ self , opname , multiindex_year_month_day_dataframe_random_data
54
+ ):
52
55
ymd = multiindex_year_month_day_dataframe_random_data
53
56
54
- def _check_op (opname ):
55
- op = getattr (DataFrame , opname )
56
- with tm .assert_produces_warning (FutureWarning ):
57
- month_sums = ymd .sum (level = "month" )
58
- result = op (ymd , month_sums , level = "month" )
59
-
60
- broadcasted = ymd .groupby (level = "month" ).transform (np .sum )
61
- expected = op (ymd , broadcasted )
62
- tm .assert_frame_equal (result , expected )
63
-
64
- # Series
65
- op = getattr (Series , opname )
66
- result = op (ymd ["A" ], month_sums ["A" ], level = "month" )
67
- broadcasted = ymd ["A" ].groupby (level = "month" ).transform (np .sum )
68
- expected = op (ymd ["A" ], broadcasted )
69
- expected .name = "A"
70
- tm .assert_series_equal (result , expected )
71
-
72
- _check_op ("sub" )
73
- _check_op ("add" )
74
- _check_op ("mul" )
75
- _check_op ("div" )
57
+ op = getattr (DataFrame , opname )
58
+ with tm .assert_produces_warning (FutureWarning ):
59
+ month_sums = ymd .sum (level = "month" )
60
+ result = op (ymd , month_sums , level = "month" )
61
+
62
+ broadcasted = ymd .groupby (level = "month" ).transform (np .sum )
63
+ expected = op (ymd , broadcasted )
64
+ tm .assert_frame_equal (result , expected )
65
+
66
+ # Series
67
+ op = getattr (Series , opname )
68
+ result = op (ymd ["A" ], month_sums ["A" ], level = "month" )
69
+ broadcasted = ymd ["A" ].groupby (level = "month" ).transform (np .sum )
70
+ expected = op (ymd ["A" ], broadcasted )
71
+ expected .name = "A"
72
+ tm .assert_series_equal (result , expected )
76
73
77
74
def test_reindex (self , multiindex_dataframe_random_data ):
78
75
frame = multiindex_dataframe_random_data
@@ -235,25 +232,25 @@ def aggf(x):
235
232
236
233
tm .assert_frame_equal (leftside , rightside )
237
234
238
- def test_std_var_pass_ddof (self ):
235
+ @pytest .mark .parametrize ("meth" , ["var" , "std" ])
236
+ def test_std_var_pass_ddof (self , meth ):
239
237
index = MultiIndex .from_arrays (
240
238
[np .arange (5 ).repeat (10 ), np .tile (np .arange (10 ), 5 )]
241
239
)
242
240
df = DataFrame (np .random .randn (len (index ), 5 ), index = index )
243
241
244
- for meth in ["var" , "std" ]:
245
- ddof = 4
246
- alt = lambda x : getattr (x , meth )(ddof = ddof )
242
+ ddof = 4
243
+ alt = lambda x : getattr (x , meth )(ddof = ddof )
247
244
248
- with tm .assert_produces_warning (FutureWarning ):
249
- result = getattr (df [0 ], meth )(level = 0 , ddof = ddof )
250
- expected = df [0 ].groupby (level = 0 ).agg (alt )
251
- tm .assert_series_equal (result , expected )
245
+ with tm .assert_produces_warning (FutureWarning ):
246
+ result = getattr (df [0 ], meth )(level = 0 , ddof = ddof )
247
+ expected = df [0 ].groupby (level = 0 ).agg (alt )
248
+ tm .assert_series_equal (result , expected )
252
249
253
- with tm .assert_produces_warning (FutureWarning ):
254
- result = getattr (df , meth )(level = 0 , ddof = ddof )
255
- expected = df .groupby (level = 0 ).agg (alt )
256
- tm .assert_frame_equal (result , expected )
250
+ with tm .assert_produces_warning (FutureWarning ):
251
+ result = getattr (df , meth )(level = 0 , ddof = ddof )
252
+ expected = df .groupby (level = 0 ).agg (alt )
253
+ tm .assert_frame_equal (result , expected )
257
254
258
255
def test_agg_multiple_levels (
259
256
self , multiindex_year_month_day_dataframe_random_data , frame_or_series
@@ -284,9 +281,6 @@ def test_groupby_multilevel(self, multiindex_year_month_day_dataframe_random_dat
284
281
result2 = ymd .groupby (level = ymd .index .names [:2 ]).mean ()
285
282
tm .assert_frame_equal (result , result2 )
286
283
287
- def test_groupby_multilevel_with_transform (self ):
288
- pass
289
-
290
284
def test_multilevel_consolidate (self ):
291
285
index = MultiIndex .from_tuples (
292
286
[("foo" , "one" ), ("foo" , "two" ), ("bar" , "one" ), ("bar" , "two" )]
0 commit comments