Untitled
# Нормализация дат: удаление временной части df1['CREATED_TS_1_date'] = df1['CREATED_TS_1'].dt.date df1['CREATED_TS_2_date'] = df1['CREATED_TS_2'].dt.date df2['Dates_date'] = df2['Dates'].dt.date # Функция для подсчета количества дат в промежутке def count_dates_in_range(row, dates): return ((dates >= row['CREATED_TS_1_date']) & (dates <= row['CREATED_TS_2_date'])).sum() # Применяем функцию к каждой строке первого DataFrame df1['Dates_in_range'] = df1.apply(count_dates_in_range, dates=df2['Dates_date'], axis=1) # Удаляем временные колонки, если они больше не нужны df1.drop(columns=['CREATED_TS_1_date', 'CREATED_TS_2_date'], inplace=True) df1['seconds'] = df1['Dates_in_range']*24*60*60 df1['Difference_seconds'] = (df1['CREATED_TS_2'] - df1['CREATED_TS_1']).dt.total_seconds() df1['sec_delta_final'] = df1['Difference_seconds']-df1['seconds'] df1
Leave a Comment