how
スカラーを返す限り、呼び出し可能なオブジェクト (この場合は関数) を に渡すことができます。
In [31]: from scipy.stats.mstats import gmean
In [32]: import pandas.util.testing as tm
In [33]: ts = tm.makeTimeSeries()[:10]
In [34]: ts
Out[34]:
2000-01-03 0.605
2000-01-04 -0.167
2000-01-05 0.365
2000-01-06 -0.206
2000-01-07 -1.156
2000-01-10 -0.219
2000-01-11 1.704
2000-01-12 -0.148
2000-01-13 1.169
2000-01-14 0.823
Freq: B, dtype: float64
In [35]: ts.resample('2D', how=lambda x: gmean(x).item())
Out[35]:
2000-01-03 0.605
2000-01-05 0.365
2000-01-07 0.000
2000-01-09 0.000
2000-01-11 1.704
2000-01-13 0.981
dtype: float64
ここでメソッドを呼び出してitem
スカラー結果を取得する必要があることに注意してください (値によっては を取得できるためMaskedConstant
)。pandas
単一の要素Series
をスカラーとは見なしません。
また、幾何平均を計算すると複雑な値が返される可能性がある s または値を含む計算の結果にも注意してくださいnan
(たとえば、負の数の 4 乗根。これはnan
numpy で返されます)。
gmean
メソッドを呼び出すと、このような計算は 0 になりますitem
。
たとえば、これが と にゼロがある理由2000-01-07
です2000-01-09
。
2000-01-07
pandas では 2 日目の a が入力されるためnan
(ここで行っていることを思い出して2D
ください)、幾何平均は として計算されma.exp(ma.mean(ma.log([-1.156, nan])))
ます。これらの 2 つの値は への「有効な」入力ではないma.log
(したがってマスクされている) ため、属性がであるをma.mean()
返すため、そのメソッドは 0 を返します。MaskedConstant
_data
0
item