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。