Python 计算最小和最大日期之间的差异,然后将其与当前日期值进行比较

Python 计算最小和最大日期之间的差异,然后将其与当前日期值进行比较,python,pandas,pandas-groupby,timedelta,Python,Pandas,Pandas Groupby,Timedelta,我有活动数据,我想根据最小值、最大值和当前日期查找运行时。 例如: 我有如下数据: Date Campaign 1.1.2020 A 2.1.2020 A 3.1.2020 A 1.1.2020 B 2.1.2020 B 我使用“最小”和“最大”聚合查找“最小”和“最大”日期值,如下所示: df_min_max_date = df.groupby('Campaign')['Date'].agg(['min'

我有活动数据,我想根据最小值、最大值和当前日期查找运行时。 例如:

我有如下数据:

Date         Campaign     
1.1.2020       A
2.1.2020       A
3.1.2020       A
1.1.2020       B
2.1.2020       B
我使用“最小”和“最大”聚合查找“最小”和“最大”日期值,如下所示:

 df_min_max_date = df.groupby('Campaign')['Date'].agg(['min', 'max']).reset_index()

    Date         Campaign       min               max
        1.1.2020       A      1.1.2020          3.1.2020  
        2.1.2020       A      1.1.2020          3.1.2020  
        3.1.2020       A      1.1.2020          3.1.2020  
        1.1.2020       B      1.1.2020          2.1.2020
        2.1.2020       B      1.1.2020          2.1.2020
但现在我需要另一个专栏来解释运行时: 所需的输出将如下所示

 Date         Campaign       min               max     runtime
 1.1.2020       A      1.1.2020          3.1.2020       0%
 2.1.2020       A      1.1.2020          3.1.2020       50%
 3.1.2020       A      1.1.2020          3.1.2020       100%
 1.1.2020       B      1.1.2020          2.1.2020        0%
 2.1.2020       B      1.1.2020          2.1.2020       100%

如果将这些值表示为天数,则更容易使用
apply
根据最小值和最大值计算运行时间。首先,应计算
delta=date\u max-date\u min
,然后需要传递到当前日期的时间,如
delta\u current=date\u today-date\u min
,只需除以delta值。我不知道日期值的格式,但我更喜欢使用UNIX时间戳,这使此类操作更容易。我尝试使用此逻辑,但不知怎的,所有值都显示为0。