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)
我计划将此代码与大型数据帧一起使用,以便以最快的方式表示赞赏。
我们可以subtract.outer从numpy,然后得到更低的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)