2

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

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

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

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

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

显然不对。现在,没有办法调用 apply 方法。

4

1 回答 1

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)
于 2016-08-26T02:19:21.193 回答