Python 我如何计算以天/月为单位的日期之间的差异,并在相应的年份中对其进行换算?

Python 我如何计算以天/月为单位的日期之间的差异,并在相应的年份中对其进行换算?,python,r,excel,Python,R,Excel,我想计算日期之间的差异,例如“2015年10月8日和2017年3月30日”,并将其分为以下几年: 2015 x天 2016年y天 2017 z天 是否有R库,或者如何编写函数来实现这一点 请提前告诉我谢谢。lubridate软件包有很多方法可以读取不同的日期格式并进行适当的计算。你所举的例子你可以借鉴 dmy('08-Oct-2015')-dmy('30-Mar-2017') 您可以从那里开始按年分组。我不知道有哪种Python模块可以在一行中完成这项工作,但有几行应该可以: 从日期时间导入日

我想计算日期之间的差异,例如“2015年10月8日和2017年3月30日”,并将其分为以下几年:

2015 x天

2016年y天

2017 z天

是否有R库,或者如何编写函数来实现这一点


请提前告诉我谢谢。

lubridate软件包有很多方法可以读取不同的日期格式并进行适当的计算。你所举的例子你可以借鉴

dmy('08-Oct-2015')-dmy('30-Mar-2017')

您可以从那里开始按年分组。

我不知道有哪种Python模块可以在一行中完成这项工作,但有几行应该可以:

从日期时间导入日期时间

def bucket_year_days(start_date, end_date):
    ''' Assumes start_date and end_date are already parsed to datetime '''
    years_dict = {}
    tmp_date = start_date
    while tmp_date <= end_date:
        next_date = datetime(tmp_date.year+1, 1, 1)
        years_dict[tmp_date.year] = (next_date - tmp_date).days
        tmp_date = next_date

    return years_dict
def桶年天数(开始日期、结束日期):
''假设开始日期和结束日期已解析为日期时间''
年份_dict={}
tmp_日期=开始日期

虽然tmp_date这提供了一个以天为单位的总体不同的值,同时定义了一个日期端点向量:

diff( y <- as.Date(c("08-Oct-2015","30-Mar-2017"), format="%d-%b-%Y") )
Time difference of 539 days
如果指定从表返回的值,则可以按位置或名称对其进行索引:

 daytbl <- table( format( seq( y[1], y[2], by=1), "%Y") )
 daytbl["2015"]   # should return 85 with "2015" as a "name"

daytbl as.Date()可能是您开始查找的好地方如果您想按年份分类,这种方法不会真正起作用,因为它会返回标量。
 daytbl <- table( format( seq( y[1], y[2], by=1), "%Y") )
 daytbl["2015"]   # should return 85 with "2015" as a "name"