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