我想将滚动窗口功能应用于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
批次而不是中位数的最大FREQUENT值?
答案 0 :(得分:1)
我们可以将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