我正在进行房地产现金流模拟。
我最终想要的是一个时间序列,每天我都会报告该物业是否空置,租赁以及我是否收取租金。
在我目前的代码中,我创建了第一个利润数组,其值为“租赁”,“空置”或“今天你收取了1000美元的租金”,所以我用它来创建我的时间序列:
rng=pd.date_range('6/1/2016', periods=len(profit), freq='D')
ts=pd.Series(profit, index=rng)
为了简化,我假设我每30天收取一次租金。现在我想更具体一点,并且每个月的第5天(例如)收集它,并在下一个租户入住的那一天保持灵活。
您是否了解命令或良好来源,我可以学习如何逐月进行迭代?
任何帮助将不胜感激
答案 0 :(得分:0)
您可以使用.shift()
和freq='M'
(pd.datetools.day
用于月末频率)使用date_sequence = pd.date_range(start, end, freq='M').shift(num_of_days, freq=pd.datetools.day)
建立一系列日期,如下所示:
DateTimeIndex
然后使用此序列从df.loc[date_sequence, 'column_name'] = value
使用
pd.DateOffset()
或者,您可以像这样使用ts = pd.date_range(start=date(2015, 6, 1), end=date(2015, 12, 1), freq='MS')
DatetimeIndex(['2015-06-01', '2015-07-01', '2015-08-01', '2015-09-01',
'2015-10-01', '2015-11-01', '2015-12-01'],
dtype='datetime64[ns]', freq='MS')
:
ts + pd.DateOffset(days=5)
现在添加5天:
DatetimeIndex(['2015-06-06', '2015-07-06', '2015-08-06', '2015-09-06',
'2015-10-06', '2015-11-06', '2015-12-06'],
dtype='datetime64[ns]', freq=None)
得到:
mybucket