优化条件while循环

时间:2019-05-16 09:45:08

标签: python pandas loops

我在python + 7mil行中有一个巨大的数据框。我的一般问题是,每当我在该列中看到“#”时,都需要遍历一列并创建一个新的“数字”。因此,第一次看到#时,我会用1覆盖它,然后放下该行,然后在下一行中使用相同的数字,直到再次看到“#”,然后继续。

我已经有一些代码了,但是这是一个循环,非常慢!

i=0
j=0
while i <len(data):    
    if  data.iloc[i][0] == '#':
        j=j+1
        data = data.drop(data.index[i])                   
    else:   
        data.iloc[i][0] = j
    i=i+1
return data 

1 个答案:

答案 0 :(得分:1)

尝试如下所示:

m = (data.iloc[:, 0] == '#')
data.iloc[:, 0] = m.cumsum()
data.drop(m.index[m], inplace=True)