Untitled

 avatar
unknown
plain_text
11 days ago
1.0 kB
2
Indexable
# Нормализация дат: удаление временной части
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