I aggregate my Pandas dataframe: data
. Specifically, I want to get the average and sum amount
s by tuples of [origin
and type
]
Use numpy's nansum and nanmean:
from numpy import nansum
from numpy import nanmean
data.groupby(groupbyvars).agg({'amount': [ nansum, nanmean]}).reset_index()
As a workaround for older version of numpy, and also a way to fix your last try:
When you do pd.Series.sum(skipna=True)
you actually call the method. If you want to use it like this you want to define a partial. So if you don't have nanmean
, let's define s_na_mean
and use that:
from functools import partial
s_na_mean = partial(pd.Series.mean, skipna = True)