处理索引时加快Pandas代码的使用

时间:2018-07-10 09:59:16

标签: python performance pandas dataframe

我有一个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]
        (...)

如您所见,不仅需要修改数据框中的某些值,而且还需要具有特定索引的值。 有什么办法可以加快这段代码的速度吗?

0 个答案:

没有答案