My two dataframes are:

df:

```
    Time
0    0.0
1    0.3
2    0.6
3    0.9
4    1.2
5    1.5
6    1.8
7    2.1
8    2.4
9    2.7
10   3.0
11   3.3
12   3.6
13   3.9
14   4.2
15   4.5
16   4.8

```

df2:

```
   Time  Value
0     0      6
1     1      8
2     2      9
3     3      6

```

My code is:

```
import pandas as pd
import numpy as np

df=pd.DataFrame(np.arange(0, 5, 0.3), columns=['Time'])
df2 = pd.DataFrame({'Time': [0, 1, 2, 3], 'Value': [6, 8, 9, 6]})

print(df)
print(df2)

df["Value"] = np.nan
for t1, t2, v in zip(df2["Time"].values[:-1], df2["Time"].values[1:], df2["Value"].values[:-1]):
    df.loc[(df["Time"] >= t1) & (df["Time"] < t2), "Value"] = v

print(df)

```

My goal is to create new `Value` column in `df` that is filling values from `df2` if `Time` from `df2` is higher or equal to `Time` from `df`.

Expected output is:

```
    Time  Value
0    0.0    6.0
1    0.3    6.0
2    0.6    6.0
3    0.9    6.0
4    1.2    8.0
5    1.5    8.0
6    1.8    8.0
7    2.1    9.0
8    2.4    9.0
9    2.7    9.0
10   3.0    6.0
11   3.3    6.0
12   3.6    6.0
13   3.9    6.0
14   4.2    6.0
15   4.5    6.0
16   4.8    6.0

```

How should I do that? Currently the output is:

```
    Time  Value
0    0.0    6.0
1    0.3    6.0
2    0.6    6.0
3    0.9    6.0
4    1.2    8.0
5    1.5    8.0
6    1.8    8.0
7    2.1    9.0
8    2.4    9.0
9    2.7    9.0
10   3.0    NaN
11   3.3    NaN
12   3.6    NaN
13   3.9    NaN
14   4.2    NaN
15   4.5    NaN
16   4.8    NaN

```