I have the following dataframe:

```
Index_Date    A   B     C    D
================================
2015-01-31    10   10   Nan   10
2015-02-01     2    3   Nan   22 
2015-02-02    10   60   Nan  280
2015-02-03    10  100   Nan  250

```

Require:

```
Index_Date    A   B    C     D
================================
2015-01-31    10   10    10   10
2015-02-01     2    3    23   22
2015-02-02    10   60   290  280
2015-02-03    10  100  3000  250

```

`Column C` is derived for `2015-01-31` by taking `value` of `D`.

Then I need to use the `value` of `C` for `2015-01-31` and multiply by the `value` of `A` on `2015-02-01` and add `B`.

I have attempted an `apply` and a `shift` using an `if else` by this gives a key error.