Skip to content

Commit b9f9a11

Browse files
authored
[compare.py] Support median merge function (#263)
Depending on the distribution, the median can tolerate outliers better than an average to better reflect the central tendency. This change adds a "--merge-median" option to select a median based merge of multiple result files. It also excludes `hash` column merge for median (like avg).
1 parent ff244c4 commit b9f9a11

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

utils/compare.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def readmulti(filenames):
122122

123123
def merge_values(values, merge_function):
124124
# Drop the "hash" column because it's irreducible for averages.
125-
if merge_function is pd.DataFrame.mean and "hash" in values.columns:
125+
if merge_function in [pd.DataFrame.mean, pd.DataFrame.median] and "hash" in values.columns:
126126
values = values[[c for c in values.columns if c != "hash"]]
127127
return values.groupby(level=1).apply(merge_function)
128128

@@ -358,6 +358,12 @@ def main():
358358
const=pd.DataFrame.mean,
359359
default=pd.DataFrame.min,
360360
)
361+
parser.add_argument(
362+
"--merge-median",
363+
action="store_const",
364+
dest="merge_function",
365+
const=pd.DataFrame.median,
366+
)
361367
parser.add_argument(
362368
"--merge-min",
363369
action="store_const",

0 commit comments

Comments
 (0)