I have 2 dataframe like this picture. How to create column 'Team_used' for DF_1, returns results based on NEAREST 'date' of DF_1, DF_2 and 'list_id' of DF_2.

I have 2 dataframe like this picture. How to create column 'Team_used' for DF_1, returns results based on NEAREST 'date' of DF_1, DF_2 and 'list_id' of DF_2.

Try with explode then merge_asof
df1.date = pd.to_datetime(df1.date)
df2.date = pd.to_datetime(df2.date)
df1.sort_values('date',inplace=True)
df2.sort_values('date',inplace=True)
df2new = df2.explode('list_id_player').rename(columns = {'list_id_player' : 'id_player'})
df1 = df1.merge_asof(df2new , by = 'id_player', on = 'date', direction = 'nearest')