gpt4 book ai didi

python - 如何使用 "rolling(window)"找到每批最频繁的值?

转载 作者:太空宇宙 更新时间:2023-11-04 04:20:16 25 4
gpt4 key购买 nike

我想将滚动窗口函数应用于 y_train DataFrame:

y_train 是单列:

0
0
1
..
2
0
3
0

y_train 中的唯一值:

np.unique(y_train.values)

> array([0, 1, 2, 3])

当我应用这段代码时,我在 y_train 中得到浮点值:

window = 20
y_train = y_train.rolling(window).median().dropna()

y_train 中的新唯一值:

np.unique(y_train.values)

> array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. ])

我如何应用滚动窗口函数来获得每个 window 批处理的最频繁值而不是中位数?

最佳答案

我们可以使用 scipy.stats.mode连同 apply() -

In [57]: a
Out[57]:
0 2
1 3
2 2
3 2
4 7
5 3
6 2
7 4
8 6
9 3
dtype: int64

In [58]: from scipy import stats

In [59]: modeval = lambda x : mode(x)[0]

In [60]: a.rolling(window=5).apply(modeval).dropna()
Out[60]:
4 2.0
5 2.0
6 2.0
7 2.0
8 2.0
9 3.0
dtype: float64

关于python - 如何使用 "rolling(window)"找到每批最频繁的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54620602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com