python时间序列(2)

Python017

python时间序列(2),第1张

时期(period)表示的是时间区间,比如数日、数月、数季、数年等。Period类所 表示的就是这种数据类型,其构造函数需要用到一个字符串或整数,以及表11-4中 的频率:

这里,这个Period对象表示的是从2007年1月1日到2007年12月31日之间的整段时间。

只需对Period对象加上或减去一个整数即可达到根据其频率进行位移的效果:

如果两个Period对象拥有相同的频率,则它们的差就是它们之间的单位数量:

period_range函数可用于创建规则的时期范围:

PeriodIndex类保存了一组Period,它可以在任何pandas数据结构中被用作轴索引:

如果你有一个字符串数组,你也可以使用PeriodIndex类:

Period和PeriodIndex对象都可以通过其asfreq方法被转换成别的频率。假设我们有 一个年度时期,希望将其转换为当年年初或年末的一个月度时期。该任务非常简 单:

你可以将Period('2007','A-DEC')看做一个被划分为多个月度时期的时间段中的游 标。图11-1对此进行了说明。

对于一个不以12月结束的财政年度,月度子时期的归属情况就不一样了:

在将高频率转换为低频率时,超时期(superperiod)是由子时期(subperiod)所 属的位置决定的。例如,在A-JUN频率中,月份“2007年8月”实际上是属于周期“2008年”的:

完整的PeriodIndex或TimeSeries的频率转换方式也是如此:

这里,根据年度时期的第一个月,每年的时期被取代为每月的时期。

如果我们想要 每年的最后一个工作日,我们可以使用“B”频率,并指明想要该时期的末尾:

未完待续。。。

python生成时间列表

yearmonthday = pd.date_range("2020-07-01","2020-12-31",freq="D").strftime("%Y%m%d").to_list()

month = pd.date_range("2020-07-01","2020-12-31", freq="M" ). strftime("%Y%m") .to_list()

day = pd.date_range("2020-07-01","2020-12-31",freq="D").strftime("%d").to_list()