@@ -2026,6 +2026,24 @@ def test_rank_args_missing(self, grps, vals, ties_method, ascending,
2026
2026
exp_df = DataFrame (exp * len (grps ), columns = ['val' ])
2027
2027
assert_frame_equal (result , exp_df )
2028
2028
2029
+ @pytest .mark .parametrize ("pct,exp" , [
2030
+ (False , [3. , 3. , 3. , 3. , 3. ]),
2031
+ (True , [.6 , .6 , .6 , .6 , .6 ])])
2032
+ def test_rank_resets_each_group (self , pct , exp ):
2033
+ df = DataFrame (
2034
+ {'key' : ['a' , 'a' , 'a' , 'a' , 'a' , 'b' , 'b' , 'b' , 'b' , 'b' ],
2035
+ 'val' : [1 ] * 10 }
2036
+ )
2037
+ result = df .groupby ('key' ).rank (pct = pct )
2038
+ exp_df = DataFrame (exp * 2 , columns = ['val' ])
2039
+ assert_frame_equal (result , exp_df )
2040
+
2041
+ def test_rank_avg_even_vals (self ):
2042
+ df = DataFrame ({'key' : ['a' ] * 4 , 'val' : [1 ] * 4 })
2043
+ result = df .groupby ('key' ).rank ()
2044
+ exp_df = DataFrame ([2.5 , 2.5 , 2.5 , 2.5 ], columns = ['val' ])
2045
+ assert_frame_equal (result , exp_df )
2046
+
2029
2047
@pytest .mark .parametrize ("ties_method" , [
2030
2048
'average' , 'min' , 'max' , 'first' , 'dense' ])
2031
2049
@pytest .mark .parametrize ("ascending" , [True , False ])
0 commit comments