我的数据清理脚本很慢,关于如何改进的任何想法?

时间:2018-10-15 02:04:48

标签: python pandas dataframe data-science data-cleaning

我有一个Data(csv格式),其中第一列是一个纪元时间戳(严格增加),其他列是累积行(只是增加或相等)。 示例如下:

EntityKey

我的脚本可以按预期工作,但是它太慢了,每个人都对如何提高速度有想法。

我编写了一个脚本,用于根据2条规则删除所有无效数据:

  1. Unix_TS必须严格增加(因为有一段时间,它不能倒退或暂停),
  2. 其他列正在增加,并且可以是恒定的,例如在一行中它是100,而在下一行中它可以是> = 100,但不能少于。

根据规则,索引3和4无效,因为unix_ts 1515288239是1515288241小于索引2。 索引5是错误的,因为值B减小了

1 个答案:

答案 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