@@ -486,19 +486,10 @@ def f(g):
486486groupby_agg_builtins2 = Benchmark ("df.groupby(['jim', 'joe']).agg([sum, min, max])" , setup )
487487
488488#----------------------------------------------------------------------
489- # groupby with a large value for ngroups
489+ # groupby with a variable value for ngroups
490490
491- setup = common_setup + """
492- np.random.seed(1234)
493- ngroups = 10000
494- size = ngroups * 10
495- rng = np.arange(ngroups)
496- df = DataFrame(dict(
497- timestamp=rng.take(np.random.randint(0, ngroups, size=size)),
498- value=np.random.randint(0, size, size=size)
499- ))
500- """
501491
492+ ngroups_list = [100 , 10000 ]
502493no_arg_func_list = [
503494 'all' ,
504495 'any' ,
@@ -535,12 +526,23 @@ def f(g):
535526
536527
537528_stmt_template = "df.groupby('value')['timestamp'].%s"
529+ _setup_template = common_setup + """
530+ np.random.seed(1234)
531+ ngroups = %s
532+ size = ngroups * 10
533+ rng = np.arange(ngroups)
534+ df = DataFrame(dict(
535+ timestamp=rng.take(np.random.randint(0, ngroups, size=size)),
536+ value=np.random.randint(0, size, size=size)
537+ ))
538+ """
538539START_DATE = datetime (2011 , 7 , 1 )
539540
540541
541- def make_large_ngroups_bmark (func_name , func_args = '' ):
542- bmark_name = 'groupby_large_ngroups_% s' % func_name
542+ def make_large_ngroups_bmark (ngroups , func_name , func_args = '' ):
543+ bmark_name = 'groupby_ngroups_%s_% s' % ( ngroups , func_name )
543544 stmt = _stmt_template % ('%s(%s)' % (func_name , func_args ))
545+ setup = _setup_template % ngroups
544546 bmark = Benchmark (stmt , setup , start_date = START_DATE )
545547 # MUST set name
546548 bmark .name = bmark_name
@@ -553,6 +555,7 @@ def inject_bmark_into_globals(bmark):
553555 globals ()[bmark .name ] = bmark
554556
555557
556- for func_name in no_arg_func_list :
557- bmark = make_large_ngroups_bmark (func_name )
558- inject_bmark_into_globals (bmark )
558+ for ngroups in ngroups_list :
559+ for func_name in no_arg_func_list :
560+ bmark = make_large_ngroups_bmark (ngroups , func_name )
561+ inject_bmark_into_globals (bmark )
0 commit comments