Как эффективно l oop через один и тот же фрейм данных дважды в pandas с разрывом при достижении условия? - PullRequest
0 голосов
/ 18 июня 2020

Мне нужно дважды l oop фрейм данных с двумя указателями, где первый указатель начинается с 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 составляет всего 40 000 строк.

Есть ли лучший способ сделать это? Любая помощь приветствуется.

...