Я пытаюсь умножить значение из dataframe2 в dataframe1 для каждого столбца, доступного в dataframe2. (Если столбец недоступен в dataframe2, его необходимо пропустить)
Dataframe1 Dataframe2
Day SPAN1 SPAN2 SPAN Growth_Factor
4/4/2014 38 289 SPAN1 20%
4/5/2014 188 324 SPAN2 150%
4/6/2014 0 118
4/7/2014 0 139
4/8/2014 0 0
4/9/2014 118 0
4/10/2014 14 0
4/11/2014 221 135
4/12/2014 199 39
4/13/2014 347 12
Теперь я хочу применитьследующий расчет для каждой строки dataframe1, где «SPAN1-OLD» совпадает с dataframe1, а «SPAN1-NEW» - это расчет, который я хочу применить
SPAN1-OLD SPAN1-NEW Calculation
38 38 = 38 - Row1 Remain same as OLD data
188 196 = 188 + (38*20%) - The 20% of above value + OLD value
0 39 = 0 + (196*20%) - ROW2 calculation Applicable for all below row
0 8 = 0 + (39*20%)
0 2 = 0 + (8*20%)
118 118 = 118 + (2*20%)
14 38 = 14 + (118*20%)
221 229 = 221 + (38*20%)
199 245 = 199 + (229*20%)
347 396 = 347 + (245*20%)
* 20% arrived from the dataframe2 (when Columnname in dataframe1 and Row of dataframe2 will match)
Я пытаюсь использовать приведенный ниже код, но это не такпомогите мне, как я ожидал
name = list(list(list(dataframe2.T.to_dict(orient='split').values())[2:])[0])[0]
val = list(list(list(dataframe2.T.to_dict(orient='split').values())[2:])[0])[1]
res = {}
for key in name:
for value in val:
res[key] = value
val.remove(value)
break
res
a = list(dataframe1.columns)
b = list(dataframe2.iloc[:,0])
for i in [x for x in a if x in b]:
dataframe1[i] = (dataframe1[i] * res.get(i))
Теперь мой ожидаемый результат такой же, как показано ниже после применения изменений, упомянутых в расчете:
Dataframe1
Day SPAN1 SPAN2
4/4/2014 38 289
4/5/2014 196 758
4/6/2014 39 1254
4/7/2014 8 2020
4/8/2014 2 3031
4/9/2014 118 4546
4/10/2014 38 6819
4/11/2014 229 10363
4/12/2014 245 15584
4/13/2014 396 23388
Что я должен включить / изменить в приведенном выше коде, чтобы получитьжелаемый вывод?
Спасибо.