groupby.apply方法采用多个参数

时间:2016-08-24 02:30:40

标签: python-xarray

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方法。

1 个答案:

答案 0 :(得分:2)

要同时对多个变量应用操作,请将多个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)