【发布时间】:2018-02-09 22:51:53
【问题描述】:
我有一个函数,它接受一个数组和一个值,然后返回一个值。我想以滚动方式将其应用于我的系列s,因此数组始终是滚动窗口。这是我尝试过的一个最小示例(未成功),使用np.random.choice 代替我的实际功能。我找到了很多查找滚动方式和其他内置函数的示例,但无法让它适用于我的任意 lambda 函数。
s = pd.Series([1,2,3,4,5,6,7,8,9])
rolling_window = s.rolling(3)
第一次尝试:
new_values = s.apply(lambda x: np.random.choice(rolling_window, size=1))
ValueError: a [a is the first positional param of choice(), so refer to 'rolling_window'] 必须是一维或整数
另一个尝试:
new_values = rolling_window.apply(lambda x: np.random.choice(size=1))
TypeError:choice() 至少需要 1 个位置参数(给定 0)
...如何在我的 Series 中的每个滚动数组窗口上对我的 Series 中的每个值应用任意 lambda 函数(获取一个数组和一个值)?
【问题讨论】:
-
rolling_window.apply(lambda x: ....)
标签: python pandas series rolling-computation