代码之家  ›  专栏  ›  技术社区  ›  Ricky

如何在pandas中有效地循环两次相同的数据帧?

  •  0
  • Ricky  · 技术社区  · 6 年前

    我必须用两个指针循环一个数据帧两次,其中第一个指针从0开始指向len(df),第二个指针从第一个指针开始指向len(df)。当满足某个条件时,它也会中断。所以我尝试了以下方法。

    for upper_index,upper_row in df.iterrows():
        for index,row in df[(upper_index+1):len(data)].iterrows():
            if condition met:
               break
    
    
     for upper in df.itertuples():
            for inner in df.iloc[(upper.Index+1):].itertuples():
                if condition met:
                   break
    
    
     for upper in df.values:
                for inner in df[(counter+1):].values:
                    if condition met:
                       break
    

    满足的条件是比较两行(第一个、第二个指针)列值并决定是否中断。

    对于第三种方法,计数器是一个变量,我保留它来增加第一个指针索引。

    但令人惊讶的是,所有的方法都很慢,而且在我的df只有40000行的情况下需要花费很多时间。

    感谢您的帮助。

    1 回复  |  直到 6 年前