【发布时间】:2017-11-08 03:03:32
【问题描述】:
我有一个非常简单的熊猫系列:
xx = pd.Series([1, 2, np.nan, np.nan, 3, 4, 5])
如果我运行它,我会得到我想要的:
>>> xx.rolling(3,1).mean()
0 1.0
1 1.5
2 1.5
3 2.0
4 3.0
5 3.5
6 4.0
但如果我必须使用.apply(),我无法通过在mean() 操作中忽略NaNs 来使其工作:
>>> xx.rolling(3,1).apply(np.mean)
0 1.0
1 1.5
2 NaN
3 NaN
4 NaN
5 NaN
6 4.0
>>> xx.rolling(3,1).apply(lambda x : np.mean(x))
0 1.0
1 1.5
2 NaN
3 NaN
4 NaN
5 NaN
6 4.0
我应该怎么做才能同时使用.apply() 并在第一个输出中获得结果?我的实际问题更复杂,我必须使用.apply() 来实现,但归结为这个问题。
【问题讨论】: