我使用 dateutil 的相对增量得到一个类类型错误。我的代码在这里:
#import packages
import numpy as np
import pandas as pd
import datetime as dt
from dateutil.relativedelta import relativedelta
from pandas import DataFrame
from pandas import Series
#timing
pers = 12
monthpp = 1
month_per = int(pers/monthpp)
sdate = dt.date(2016,1,1)
ops = dt.date(2016,3,15)
bop1 = sdate
eop1 = bop1 + relativedelta(months =+ 1, days =- 1)
edate = sdate + relativedelta(months =+ month_per)
rng_bop = pd.date_range(bop1, freq = 'MS', periods = pers)
rng_eop = pd.date_range(eop1, freq = 'M', periods = pers)
ops_line = ops >= rng_bop and ops <= rng_eop
#outputs
print(sdate)
print(edate)
print(rng_bop)
print(rng_eop)
如果有人对我的方法有更好的替代方案,我会持开放态度 - 我正在尝试将 excel 的东西翻译成 python,并且可能不会非常有效地做到这一点。
我这部分的最终目标是能够按月、季度或半年或年调整周期,但我现在只需要几个月就很高兴了。EOP 线应该是(BOP + Period - 1 天)。
我也不认为我的 ops_line 定义会起作用 - 我正在尝试从逻辑运算符创建一个布尔数组。有什么积分吗?