#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)
Кроме того, я хотел бы сгруппировать по дате.
Может ли кто-нибудь помочь мне с этим, пожалуйста! Я не уверен, что делаю что-то не так.
Спасибо,