Как векторизовать понимание скользящего списка над пандами. DataFrame - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть следующее понимание списка:

[(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)

Я уверен, что есть способ избежать этой петли, но я застрял здесь.

Дайте мне знать, если необходимы дополнительные разъяснения, если мое объяснение недостаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...