如何根据包含日期的列计算从今天起的几天

时间:2020-07-04 17:35:31

标签: python pandas date datetime

我有一个数据框,其中一列包含多个称为“日期”的日期,我想将其转换为从今天的日期(2020-07-04)计算得出的日期,这是代码:

profile['membership_date'] = pd.to_datetime(profile['became_member_on'].astype(str), format='%Y%m%d')

该列是这样的:

0       2017-02-12
1       2017-07-15
2       2018-07-12
3       2017-05-09
4       2017-08-04
5       2018-04-26

然后我们得到今天的日期:

today_date = datetime.date.today().strftime('%Y-%m-%d')

#calculate days, I tried two different ways but still getting error

profile['membership_date'] - today_date

profile['membership_days'] = (profile['membership_date'] - today_date).days

#error:unsupported operand type(s) for -: 'DatetimeIndex' and 'str'

有人可以帮我吗,谢谢。

1 个答案:

答案 0 :(得分:1)

使用Series.subpd.Timestamp.now中减去membership_date列,该列返回包含timedelta个对象的序列,最后使用Series.dt.days获得整数表示两个日期之间经过的天数。

profile['membership_days'] = (
    profile['membership_date'].sub(pd.Timestamp.now()).dt.days
)

结果:

# print(profile)
        Date  membership_days
0 2017-02-12            -1239
1 2017-07-15            -1086
2 2018-07-12             -724
3 2017-05-09            -1153
4 2017-08-04            -1066
5 2018-04-26             -801
相关问题