Я хочу вычислить значения записей фрейма данных с использованием значений других записей, связанных с ним по идентификатору.
Вот некоторая рабочая python идея:
averages_indexes # list with same rows as pandas dataframe, with df indexes as elements
# eg. [[0, 1, 3], [1, 3], [2, 5, 3], [3, 4, 1], ...]
for idx, val in df.iterrows():
avg = np.average([df['value'][tmpidx] for tmpidx in averages_indexes[idx]])
df['avgvalue'][idx] = avg
Вот что Я получаю (на самом деле вычисленное среднее значение в "average_of_values", например, 2. (3) в первой строке):
Я предполагаю, что перебирать все строки (особенно если их 6кк) не слишком умно. Я считаю, что есть более быстрый вариант. Я читал о фильтрах, отображении и даже о поддержке cuda, но понятия не имею, как связать это с моей проблемой.
Есть ли способ его оптимизировать?