Skip to content

Commit 7bc6649

Browse files
author
y-p
committed
BUG: util.testing.makeCustomIndex results were not sorted properly
mkdf(100,2) was returning [(#_l0_g0, #_l1_g0), (#_l0_g1, #_l1_g1), (#_l0_g10, #_l1_g10), (#_l0_g100, #_l1_g100) rather then: [(#_l0_g0, #_l1_g0), (#_l0_g1, #_l1_g1), (#_l0_g2, #_l1_g2), (#_l0_g3, #_l1_g3)
1 parent a74ec93 commit 7bc6649

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

pandas/util/testing.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -425,14 +425,19 @@ def makeCustomIndex(nentries, nlevels, prefix='#', names=False, ndupe_l=None,
425425

426426
tuples = []
427427
for i in range(nlevels):
428+
def keyfunc(x):
429+
import re
430+
numeric_tuple = re.sub("[^\d_]_?","",x).split("_")
431+
return map(int,numeric_tuple)
432+
428433
# build a list of lists to create the index from
429434
div_factor = nentries // ndupe_l[i] + 1
430435
cnt = Counter()
431436
for j in range(div_factor):
432437
label = prefix + '_l%d_g' % i + str(j)
433438
cnt[label] = ndupe_l[i]
434439
# cute Counter trick
435-
result = list(sorted(cnt.elements()))[:nentries]
440+
result = list(sorted(cnt.elements(), key=keyfunc))[:nentries]
436441
tuples.append(result)
437442

438443
tuples = zip(*tuples)

0 commit comments

Comments
 (0)