@@ -486,19 +486,10 @@ def f(g):
486
486
groupby_agg_builtins2 = Benchmark ("df.groupby(['jim', 'joe']).agg([sum, min, max])" , setup )
487
487
488
488
#----------------------------------------------------------------------
489
- # groupby with a large value for ngroups
489
+ # groupby with a variable value for ngroups
490
490
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
- """
501
491
492
+ ngroups_list = [100 , 10000 ]
502
493
no_arg_func_list = [
503
494
'all' ,
504
495
'any' ,
@@ -535,12 +526,23 @@ def f(g):
535
526
536
527
537
528
_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
+ """
538
539
START_DATE = datetime (2011 , 7 , 1 )
539
540
540
541
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 )
543
544
stmt = _stmt_template % ('%s(%s)' % (func_name , func_args ))
545
+ setup = _setup_template % ngroups
544
546
bmark = Benchmark (stmt , setup , start_date = START_DATE )
545
547
# MUST set name
546
548
bmark .name = bmark_name
@@ -553,6 +555,7 @@ def inject_bmark_into_globals(bmark):
553
555
globals ()[bmark .name ] = bmark
554
556
555
557
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