Попробуйте сохранить первую дату запуска для каждого 'cod_id' в новом столбце с помощью grouby:
df2 = df.groupby(['cod_id']).dt_op.min()
и объединить его с вашим фреймом данных
df = pd.merge(df, df2, on='cod_id', how='left')
, затем создайте новый столбец в качестве разницы данных между минимальной датой и первой.И вы можете рассчитать csum всегда, как указано выше, и разделить разницу между датами.