Агрегированное Попарное Вычисление Внутри Столбца

#python

Вопрос:

У меня есть фрейм данных с датой, фирмой и размером. Я хочу сгруппировать по дате, а затем для данной фирмы я хочу сравнить и агрегировать размер со всеми другими фирмами на основе формулы, как показано в приведенном ниже коде. Например, на определенную дату,

Дата Твердый Размер
1/1/21 X 2
1/1/21 Y 7
1/1/21 Z 1

Я хочу получить следующие результаты:

Дата Твердый Размер Совокупное сравнение
1/1/21 X 2 -0.2268
1/1/21 Y 7 1.2901.
1/1/21 Z 1 -1.063

Код, который работает для самодельного списка, выглядит следующим образом:

 ls = [2, 7, np.nan, 1]

def pairwise_sum(m):
    for i in range(len(m)):
        pairwise = 0
        if pd.isnull(m[i]):
            pass
        else:
            for j in range(len(m)):
                if i!=j:
                    if pd.isnull(m[j]):
                        pass
                    else:
                        pairwise  = (m[i]-m[j])/(m[i] m[j] 0.1)  
        print(pairwise)

pairwise_sum(ls)
 

Однако, когда я пытаюсь применить эту функцию к фрейму данных, я получаю ошибку.

«индексы списка должны быть целыми числами или срезами, а не str»

Код для применения этой функции к фрейму данных выглядит следующим образом:

 b["Pairwise_Sum"] = b["Size"].apply(pairwise_sum, axis=1)
 

Кроме того, я хотел бы сгруппировать по дате.

Может ли кто-нибудь помочь мне с этим, пожалуйста! Я не уверен, что делаю что-то не так.

Спасибо,