ah ha, you are right, but apparently that was on purpose, though i no
longer recall why (something about the elaborate weight-loss rules we
had in the early days). so "mean" is indeed an alias for "uniqmean"
but you can pick "truemean" to not do the de-duping.
here's the whole story, straight from the code, on all the possible
aggday settings (as you can see, it's dirt simple to add more if you
have proposals):
AGGR = { # Map possible aggday settings to lambdas that aggregate thusly
'last'     : lambda x: x[-1],
'first'    : lambda x: x[0],
'min'      : lambda x: min(x),
'max'      : lambda x: max(x),
'truemean' : lambda x: np.mean(x),
'uniqmean' : lambda x: np.mean(deldups(x)),
'mean'     : lambda x: np.mean(deldups(x)),
'median'   : lambda x: np.median(x),
'mode'     : lambda x: scipy.mode(x),           # mma: Median@Commonest
'trimmean' : lambda x: scipy.trim_mean(x, 0.1),
'sum'      : lambda x: np.sum(x),
'jolly'    : lambda x: 1 if x else 0