У меня есть фрейм данных
value | count
-----------------
1.8 | 3
1.7 | 2
6.3 | 7
8.4 | 3
Я хотел бы создать новый столбец, в котором каждая строка i
имеет значение
sum(count[i]*count[j]*(value[i]-value[j])**2,{sum over j where j>i})
, где j
охватывает все строки с индексом больше, чем у строки i
.
Если я извлечу список значений values = [1.8, 1.7, 6.3, 8.4]
, я смогу оценить (value[i]-value[j])**2 for j>i
как
def f(m):
return sum([(values[m] - x)**2 for x in values[m:]])
[f(m) for m in range(len(values))][:-1]
, но я не найти способ реализовать всю формулу в pandas, потому что также задействованы значения из второго столбца. Кто-нибудь может мне помочь?
Ожидаемый столбец, учитывая приведенный выше фрейм данных, будет иметь значения [92.61, 817.35, 565.58, 0]