У меня есть следующее понимание списка:
[(foo(df.iloc[old_row[0]:old_row[1]].cov(), df.iloc[new_row[0]:new_row[1]].cov()), new_row)
for new_row in new_rows_list if old_row != new_row]
, где
df
- это 20000 строк, 50 столбцов pandas.DataFrame
old_row
- это tuple
, который задает координаты строк, где old_row[0]
<<code>old_row[1] (например, (50, 100)) new_row
совпадает с old_row
, но с другими значениями new_rows_list
- это list
из new_row
tuples
По сути, я пытаюсь добиться выполнения foo
на двух pandas.DataFrames
где один и тот же, а другой меняется в цикле.Цикл просто последовательно принимает куски DataFrame
(например, сначала от строки 0 до 50, затем от 51 до 100, затем от 101 до 150 и т. Д.).
Я пытался использовать np.vectorize
, однако как оба new_rows_list
и df
являются итерациями, я не могу достичь никаких результатов с этой функцией.
Весь вывод возвращает список кортежей, где один кортеж (результат foo
, new_row
)
Я уверен, что есть способ избежать этой петли, но я застрял здесь.
Дайте мне знать, если необходимы дополнительные разъяснения, если мое объяснение недостаточно.