Я хотел бы добавить вычисленные различия к существующему фрейму данных в отношении идентификаторов.Различия были сохранены в отдельный фрейм данных.
Фактическая структура данных имеет следующий вид df1
:
Id Col1 Col2 Col3
567 6 7 9
567 8 10 18
567 9 11 20
567 10 12 30
567 4 16 57
... ... ... ...
1568 6 7 9
1568 8 10 18
1568 9 11 20
1568 10 12 30
1568 4 16 57
Расчетные различия сохраняются в df2
для каждого идентификатора в отдельности, например, для Id=567
:
Col1_d1 Col2_d1 Col3_d1
NaN NaN NaN
-2 -3 -9
-1 -1 -2
-1 -1 -10
6 -4 -27
Кроме того, NaN
значения, которые я заполнил 0
.
Я пытался использовать groupby
и map
, но безуспешно.
L1 = [x for _, x in df1.groupby(df1['Id'])]
Как я могу объединить его со вторым фреймом данных df2
с учетом требуемой группировки по Id
?
Я пытался сделать это: list(map(lambda x: df1.append(x), L1))
Ожидаемый результат:
Id Col1 Col2 Col3 Col1_d1 Col2_d1 Col3_d1
567 6 7 9 0 0 0
8 10 18 -2 -3 -9
9 11 20 -1 -1 -2
10 12 30 -1 -1 -10
4 16 57 6 -4 -27
1568 6 7 9 0 0 0
8 10 18 -2 -3 -9
9 11 20 -1 -1 -2
10 12 30 -1 -1 -10
4 16 57 6 -4 -27
Я благодарен за любую идею и помощь.Спасибо!