2016-08-24 19 views
1

メソッドでは、異なるグループにいくつかの機能を適用できます。ドキュメントのように、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メソッドを呼び出す方法はありません。一度に複数の変数を介して操作を適用するには

+0

あなたも満たされたy値を持つ新しい機能を取得するためにfunctool.partialを使用することができますに。 – derchambers

答えて

1

、単一xarray.Datasetにまとめ、複数のDataArrayオブジェクトを入れて、例えば、

# 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) 
関連する問題