熊猫:相当于excel360天

时间:2018-08-14 01:47:38

标签: python excel pandas

我正在将一些excel模型转换为python,一些计算使用的是excel中的days360函数,该函数基于360天的年份计算两天之间的天数。

我一直在查看pandas.tseries.offsets,但是什么也没看到。

例如在excel中,

d1 = 2/2/2015
d2 = 1/1/2018

=days(d1, d2) # 1064
=days360(d1, d2) # 1049

1 个答案:

答案 0 :(得分:2)

days360上有a Reddit thread用于Pandas-这是发布在此处的函数(似乎可用于示例输入):

def days360(start_date, end_date, method_eu=False):
    start_day = start_date.day
    start_month = start_date.month
    start_year = start_date.year
    end_day = end_date.day
    end_month = end_date.month
    end_year = end_date.year

    if (
        start_day == 31 or
        (
            method_eu is False and
            start_month == 2 and (
                start_day == 29 or (
                    start_day == 28 and
                    start_date.is_leap_year is False
                )
            )
        )
    ):
        start_day = 30

    if end_day == 31:
        if method_eu is False and start_day != 30:
            end_day = 1

            if end_month == 12:
                end_year += 1
                end_month = 1
            else:
                end_month += 1
        else:
            end_day = 30

    return (
        end_day + end_month * 30 + end_year * 360 -
        start_day - start_month * 30 - start_year * 360)

对OP数据进行测试:

d1 = pd.to_datetime("2/2/2015")
d2 = pd.to_datetime("1/1/2018")

days360(d1, d2) # 1049