我有一个Data(csv格式),其中第一列是一个纪元时间戳(严格增加),其他列是累积行(只是增加或相等)。 示例如下:
EntityKey
我的脚本可以按预期工作,但是它太慢了,每个人都对如何提高速度有想法。
我编写了一个脚本,用于根据2条规则删除所有无效数据:
根据规则,索引3和4无效,因为unix_ts 1515288239是1515288241小于索引2。 索引5是错误的,因为值B减小了
答案 0 :(得分:2)
IIUC,可以使用
cols = ['A', 'B', 'C', 'D']
mask_1 = df['UNIX_TS'] > df['UNIX_TS'].cummax().shift().fillna(0)
mask_2 = mask_2 = (df[cols] >= df[cols].cummax().shift().fillna(0)).all(1)
df[mask_1 & mask_2]
输出
UNIX_TS A B C D
0 1515288240 100 50 90 70
1 1515288241 101 60 95 75
2 1515288242 110 70 100 80