Я новичок в python, и мне нужна помощь с вопросом, который у меня возникает по поводу функции даты и времени. У меня есть df_a, у которого есть столбец с названием «время», и я пытаюсь создать новый столбец «id» в этом df_a. Я хочу, чтобы столбец 'id' определялся по тому, содержится ли время в пределах диапазона времени в столбцах df_b между "date" и "date_new", например, в первой строке есть дата "2019-01-07 20:52:41 "и" date_new "из" 2019-01-07 21:07:41 "(15-минутный интервал времени), я хотел бы, чтобы индекс для этой строки отображался в качестве моего идентификатора в df_a, когда время "2019-01-07 20:56:30" (т.е. с id = 0) и так далее для всех строк в df_a,
Этот вопрос похож, но не могу понять, как заставить его работать с моим, так как я продолжаю получать
Python присваивает значение pandas df, если попадает в диапазон дат в другом df
s = pd.Series(df_b['id'].values,pd.IntervalIndex.from_arrays(df_b['date'],df_b['date_new']))
df_a['id']=df_a['time'].map(s)
ValueError: cannot handle non-unique indices
Одно предупреждение: диапазоны в df_b не всегда уникальны, что означает, что некоторые из интервалов содержат одинаковые периоды времени, в этих случаях хорошо, если он использует идентификатор первого периода времени в df_b, в который он попадает, Кроме того, в df_b содержится более 200 строк, а в df_a - 2000, поэтому определение каждого периода времени в формате типа цикла for займет много времени, если нет более простого способа сделать это, чем определить каждый, заранее благодарим за всю вашу помощь! если это может использовать какие-либо разъяснения, пожалуйста, сообщите мне!
df_a
time id
2019-01-07 22:02:56 NaN
2019-01-07 21:57:12 NaN
2019-01-08 09:35:30 NaN
df_b
date date_new id
2019-01-07 21:50:56 2019-01-07 22:05:56 0
2019-01-08 09:30:30 2019-01-08 09:45:30 1
Expected Result
df_a
time id
2019-01-07 22:02:56 0
2019-01-07 21:57:12 0
2019-01-08 09:35:30 1