我有一个df
Pandas数据框,它具有2000多个行和100列。我想遍历每个元素来执行一些操作,但是我当前的代码非常慢(运行一个小时以上)。
我读过this article,这基本上是从速度上说的:对于<迭代<应用<向量化。
我尝试在一些SO问题的帮助下完成所有这些方法,但是我认为我不能比double for循环做得更好。 这是我的(简化)代码:
for i in range(6, nbrows):
for j in range(1, nbcols-1):
if (df.loc[i,j] == '0'):
if(df.loc[i-1,j] != '0' and i>6):
report={"Info1": df.loc[i,0], "Info2": df.loc[1,j], (...)}
df.loc[i,j] = df.loc[i-1,j]
elif(i<nbrows-1):
searchvalue = 1
while(df.loc[i+searchvalue,j] == '0' and i+searchvalue<nbrows):
searchvalue += 1
if (i+searchvalue<nbrows-1):
report={(same thing...)}
df.loc[i,j] = df.loc[i+searchvalue,j]
(...)
如您所见,不仅需要修改数据框中的某些值,而且还需要具有特定索引的值。 有什么办法可以加快这段代码的速度吗?