Python 计算值在滚动窗口中满足条件的次数

Python 计算值在滚动窗口中满足条件的次数,python,pandas,rolling-computation,Python,Pandas,Rolling Computation,我想计算第0列中大小为n的滚动窗口中的值大于第1列中的值的次数。在这种情况下,包含值9、5、1、26(大小4)的窗口将产生数字3,因为9、5和26而不是1大于4。类似地,如果使用列1上的滚动窗口4应用于列2,则该值将为0,因为4、4、3、7中没有一个大于16 但是,我不确定您想要什么输出,因为输出将是如图所示的系列&在实际达到滚动窗口值之前,您将拥有NaN In [4]: data = pd.DataFrame([[9,4,16],[5,4,2],[1,3,13],[26,7,3]])

我想计算第0列中大小为n的滚动窗口中的值大于第1列中的值的次数。在这种情况下,包含值9、5、1、26(大小4)的窗口将产生数字3,因为9、5和26而不是1大于4。类似地,如果使用列1上的滚动窗口4应用于列2,则该值将为0,因为4、4、3、7中没有一个大于16

但是,我不确定您想要什么输出,因为输出将是如图所示的系列&在实际达到滚动窗口值之前,您将拥有NaN

In [4]: data = pd.DataFrame([[9,4,16],[5,4,2],[1,3,13],[26,7,3]])               

In [5]: data                                                                    
Out[5]: 
    0  1   2
0   9  4  16
1   5  4   2
2   1  3  13
3  26  7   3
输出

def func(arr):
    count = 0
    for i in arr : 
        if i > len(arr) : 
            count = count + 1
    return count
data[0].rolling(4).apply(lambda x: func(x),raw=False)
将导致

data[0].rolling(2).apply(lambda x: func(x),raw=False)

谢谢我意识到我正在寻找的是一种在滚动中迭代值的方法,以便我可以将它们与特定行中的值进行比较,并计算它们比该值大多少倍。不幸的是,滚动中的值的迭代尚未实现。
data[0].rolling(2).apply(lambda x: func(x),raw=False)
0    NaN
1    2.0
2    1.0
3    1.0