I'm trying to do something that seems quite easy on excel using `vlookup`. All the times bellow are of `timedelta datatype` . Couldn't find a solution that fit me by google searching the errors.

`DF1 (bellow)` is my main DataFrame one value is Arrival time. 

```
+--------+------+
|Arrival | idBin|
+--------+------+
|10:01:40|  nan |
|10:03:12|  nan |
|10:05:55|  nan |
|10:05:10|  nan |
+--------+------+

```

`DF2(bellow)` is my parameters Dataframe with **1k+ time ranges** (manually creating a dictionary seems impractical).

```
+--------+--------+------+
|start   |end     |idBin |
+--------+--------+------+
|10:00:00|10:00:30|  1   |
|10:00:31|10:01:00|  2   |
|10:01:01|10:01:30|  3   |
|10:01:31|10:02:00|  4   |
+--------+--------+------+

```

What I need is to get `DF2.idBin` into `DF1.idBin` where `DF1.arrival` between `DF2.start` and `DF2.end`

**What I tried so far:**

`**.loc**` > returns `ValueError: Can only compare identically-labeled Series objects`

```
    pd.DataFrame.loc[ (df1['arrival'] >= df2['start']) 
                     & (df1['arrival'] <= df2['end']), 'idBin'] = df2['idBin']

```

`**date_range()**` so I could transform it into dictionary, but return `TypeError: Cannot convert input [0 days 10:00:00] of type <class 'pandas._libs.tslibs.timedeltas.Timedelta'> to Timestamp`

```
dt_range = pd.date_range(start=df2['start'].min(), end=df2['end'].max(), name=df2['idBin'])

```