【发布时间】:2019-12-05 14:02:42
【问题描述】:
假设我有以下数据框:
import pandas as pd
mydict = {
'date_time':['2019-01-01','2019-01-02','2019-01-03','2019-01-04'],
'value':[5,3,7,2]
}
df = pd.DataFrame(mydict)
我想创建以下输出:
date_time value Number of previous rows with larger value
0 2019-01-01 5 0
1 2019-01-02 3 1
2 2019-01-03 7 0
3 2019-01-04 2 3
后一列的逻辑是检查前一列的所有值,并统计大于当前行的值的个数。
所以在值为0的第一行中,没有前面的行存在,因此数字为0。
第二行的值为3,前一行的值较大(5),表示“数”为
第3行的值为7,第1行和第2行都不大,所以数字为0。
第 4 行的值为 2,第 1,2,3 行较大,表示数字为 3。
最有效的方法是什么?
【问题讨论】:
-
使用 jezrael 在这篇文章中的回答:stackoverflow.com/questions/51039857/… 我会根据您的数据集增大窗口大小
-
好的,谢谢。这很棒