我有代码如下:
def fn(x): ... df.rolling(length).apply(lambda x: fn(x))
我想让这个函数把 Dataframe 的一个子集作为输入,这可能吗?
soat7uwm1#
实际上我找到了一种方法,虽然它没有真正将df的一部分作为参数传递,但可以从那里获得df。
def fn(x): df_frac = df.iloc[x.index.start: x.index.stop] return ... df.rolling(length).apply(lambda x: fn(x))
jogvjijk2#
一种方法可以是:
df = pd.DataFrame({'a': np.random.randint(5, 15, 5), 'b': np.random.randint(5, 15, 5), 'c': np.random.randint(5, 15, 5)}) def fn(x): return x.sum() r = df.rolling(3) [fn(x) for x in r]
输出:
[a 10 b 13 c 14 dtype: int64, a 19 b 27 c 19 dtype: int64, a 33 b 38 c 24 dtype: int64, a 29 b 37 c 16 dtype: int64, a 32 b 30 c 23 dtype: int64]
2条答案
按热度按时间soat7uwm1#
实际上我找到了一种方法,虽然它没有真正将df的一部分作为参数传递,但可以从那里获得df。
jogvjijk2#
一种方法可以是:
输出: