Я работаю с данными временного ряда, которые отформатированы, поскольку каждая строка представляет собой отдельный экземпляр идентификатора / времени / данных.Это означает, что строки не соответствуют 1 к 1 для каждого идентификатора.Каждый идентификатор имеет много строк во времени.
Я пытаюсь использовать задержку dask для запуска функции на всей последовательности идентификаторов (имеет смысл, что операция должна быть в состоянии запускаться для каждого отдельного идентификатора одновременновремя, так как они не влияют друг на друга).Для этого я сначала перебираю каждый из тегов идентификатора, извлекаю / определяю местонахождение всех данных этого идентификатора (с .loc в пандах, так что это отдельный «мини» df), затем задерживаю вызов функции на мини dfдобавление столбца с задержанными значениями и добавление его в список всех мини-файлов.В конце цикла for я хочу вызвать dask.compute () сразу для всех mini-df, но по какой-то причине значения mini df все еще задерживаются.Ниже я опубликую некоторый псевдокод о том, что я только что пытался объяснить.
У меня такое ощущение, что это может быть не самый лучший способ сделать это, но это то, что имело смысл в то время, и я не могу понятьчто не так, поэтому любая помощь будет очень цениться.
Вот что я пытаюсь сделать:
list_of_mini_dfs = []
for id in big_df:
curr_df = big_df.loc[big_df['id'] == id]
curr_df['new value 1'] = dask.delayed(myfunc)(args1)
curr_df['new value 2'] = dask.delayed(myfunc)(args2) #same func as previous line
list_of_mini_dfs.append(curr_df)
list_of_mini_dfs = dask.delayed(list_of_mini_dfs).compute()
Concat all mini dfs into new big df.
Как вы можете видеть из кода, я должен добраться до моего большого /общий фрейм данных для извлечения последовательности данных каждого идентификатора, поскольку она разбросана по строкам.Я хочу иметь возможность вызывать отложенную функцию для данных этого единственного идентификатора, а затем возвращать значения из вызова функции в большой / общий фрейм данных.
В настоящее время этот метод не работает, когда я объединяю все мини-фреймы данных вместе, два значения, которые я задержал, все еще задерживаются, что заставляет меня думать, что это связано с тем, как я задерживаю функцию внутриDF и пытается вычислить список данных кадров.Я просто не вижу, как это исправить.
Надеюсь, это было относительно ясно, и спасибо за помощь.