Python时间序列

时间:2016-05-24 20:26:03

标签: python-2.7 pandas time-series

我正在进行房地产现金流模拟。

我最终想要的是一个时间序列,每天我都会报告该物业是否空置,租赁以及我是否收取租金。

在我目前的代码中,我创建了第一个利润数组,其值为“租赁”,“空置”或“今天你收取了1000美元的租金”,所以我用它来创建我的时间序列:

rng=pd.date_range('6/1/2016', periods=len(profit), freq='D')
ts=pd.Series(profit, index=rng)

为了简化,我假设我每30天收取一次租金。现在我想更具体一点,并且每个月的第5天(例如)收集它,并在下一个租户入住的那一天保持灵活。

您是否了解命令或良好来源,我可以学习如何逐月进行迭代?

任何帮助将不胜感激

1 个答案:

答案 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