I want to make a code that goes through the lists within vals
array one by one for each unique digit_vals
value. The digit_vals
value shows the nth number for the expected output, so since the first value in digit_vals
is 24 then it means that all the numbers before it will be a filled with zeroes and the 24th number will contain value from vals
. Since there are two 24s within digit_vals
it means that the 2nd index within the first list of vals
([-3.3, -4.3, 23.05, 23.08, 23.88, 3.72]
) will contain the 24th value in the Expected Output which is -4.3
. The 4th index of the 2nd list within vals
will contain the value for the 27th value in digit_vals
and so on. The gaps between the digit_vals
will be filled with zeroes as well in the results so between 24 and 27 there will be 2 zeroes for the 25th and 26th place respectively. How would I be able to code this function that allows me to achieve the Expected Output below?
import pandas as pd
import numpy as np
digit_vals = np.array([24, 24, 27, 27, 27, 27,
28, 28, 28, 31])
vals = np.array([list([-3.3, -4.3, 23.05, 23.08, 23.88, 3.72]),
list([2.3, 2.05, 3.08, -4.88, 4.72]),
list([5.3, 2.05, 6.08, -13.88, -17.2]),
list([9.05, 6.08, 3.88, -13.72])], dtype=object)
Expected Output:
array([ 0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
0. , 0. , 0. , 0. ,
-4.3, , 0. , 0. , -4.88 ,
6.08, , 0 , 9.05])