@@ -753,6 +753,46 @@ def test_groupby_with_hier_columns(self):
753
753
result = df .groupby (level = 0 ).mean ()
754
754
self .assert_ (result .columns .equals (sorted_columns ))
755
755
756
+ def test_pass_args_kwargs (self ):
757
+ from scipy .stats import scoreatpercentile
758
+
759
+ def f (x , q = None ):
760
+ return scoreatpercentile (x , q )
761
+ g = lambda x : scoreatpercentile (x , 80 )
762
+
763
+ # Series
764
+ ts_grouped = self .ts .groupby (lambda x : x .month )
765
+ agg_result = ts_grouped .agg (scoreatpercentile , 80 )
766
+ apply_result = ts_grouped .apply (scoreatpercentile , 80 )
767
+ trans_result = ts_grouped .transform (scoreatpercentile , 80 )
768
+
769
+ agg_expected = ts_grouped .quantile (.8 )
770
+ trans_expected = ts_grouped .transform (g )
771
+
772
+ assert_series_equal (apply_result , agg_expected )
773
+ assert_series_equal (agg_result , agg_expected )
774
+ assert_series_equal (trans_result , trans_expected )
775
+
776
+ agg_result = ts_grouped .agg (f , q = 80 )
777
+ apply_result = ts_grouped .apply (f , q = 80 )
778
+ trans_result = ts_grouped .transform (f , q = 80 )
779
+ assert_series_equal (agg_result , agg_expected )
780
+ assert_series_equal (apply_result , agg_expected )
781
+ assert_series_equal (trans_result , trans_expected )
782
+
783
+ # DataFrame
784
+ df_grouped = self .tsframe .groupby (lambda x : x .month )
785
+ agg_result = df_grouped .agg (scoreatpercentile , 80 )
786
+ apply_result = df_grouped .apply (DataFrame .quantile , .8 )
787
+ expected = df_grouped .quantile (.8 )
788
+ assert_frame_equal (apply_result , expected )
789
+ assert_frame_equal (agg_result , expected )
790
+
791
+ agg_result = df_grouped .agg (f , q = 80 )
792
+ apply_result = df_grouped .apply (DataFrame .quantile , q = .8 )
793
+ assert_frame_equal (agg_result , expected )
794
+ assert_frame_equal (apply_result , expected )
795
+
756
796
class TestPanelGroupBy (unittest .TestCase ):
757
797
758
798
def setUp (self ):
0 commit comments