计算前一行中大于当前行值的值

coo*_*z56 3 python loops countif pandas

我想找到比列中当前行值更大的先前行数的计数,并将其存储在新列中。这就像一个滚动计数回到列的开头。下面所需的示例输出显示了给定的值列和我要创建的计数列。

Desired Output:
Value  Count
5      0 
7      0
4      2
12     0
3      4
4      3
1      6
Run Code Online (Sandbox Code Playgroud)

我计划将此代码与大型数据帧一起使用,以便以最快的方式表示赞赏。

WeN*_*Ben 5

我们可以subtract.outernumpy,然后得到更低的tri并找到该值小于0,然后将每行的值相加

a = np.sum(np.tril(np.subtract.outer(df.Value.values,df.Value.values), k=0)<0, axis=1)
# results in array([0, 0, 2, 0, 4, 3, 6])
df['Count'] = a
Run Code Online (Sandbox Code Playgroud)