groupby.apply 方法采用多个参数

groupby.apply method taking more than one arguments

xarray文档中,groupby.apply方法可以对不同的组应用一些功能。如文档中所述,

In [11]: def standardize(x):
   ....:     return (x - x.mean()) / x.std()
   ....: 

In [12]: arr.groupby('letters').apply(standardize) 

但是,如何将另一个参数放入标准化函数中?即

 def standardize(x, y):
   ....:     return (x - x.mean()) / x.std() + y.sum()
arr.groupby('letters').apply(standardize(x, y))??

显然不对。 现在,无法调用apply方法。

要同时对多个变量应用操作,请将多个 DataArray 对象放在一个 xarray.Dataset 中,例如,

# foo and bar are xarray.DataArray objects
ds = xarray.Dataset({'x': foo, 'y': bar})

def standardize(ds):
    return (ds.x - ds.x.mean()) / ds.x.std() + ds.y.sum()

ds.groupby('letters').apply(standardize)