Moj*_*Moj 5 python datetime time-series pandas
我最近开始使用 pandas,并且有一些关于 date_range 的问题。
In [168]: pd.date_range("2013-07-01", "2013-10-03", freq='W').to_series()
Out[168]:
2013-07-07 2013-07-07
2013-07-14 2013-07-14
2013-07-21 2013-07-21
2013-07-28 2013-07-28
2013-08-04 2013-08-04
2013-08-11 2013-08-11
2013-08-18 2013-08-18
2013-08-25 2013-08-25
2013-09-01 2013-09-01
2013-09-08 2013-09-08
2013-09-15 2013-09-15
2013-09-22 2013-09-22
2013-09-29 2013-09-29
Freq: W-SUN, dtype: datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,我预计第一个索引2013-07-01不是2013-07-07. 我检查了一下,发现默认情况下 date_range 考虑左右闭合。还尝试了一些其他频率,例如W-MON,但没有帮助。
8年后,1.5.2版本仍然有同样的bug:
my_period = pd.date_range('2015-09-01', '2016-07-01', freq='3M')
my_period
Run Code Online (Sandbox Code Playgroud)
给出
DatetimeIndex(['2015-09-30', '2015-12-31', '2016-03-31', '2016-06-30'], dtype='datetime64[ns]', freq='3M')
Run Code Online (Sandbox Code Playgroud)
默认情况下,开始时间应固定在给定日期(恕我直言),此处为 2015 年 9 月 1 日 00:00。星期日的故事在这里不适用。
有趣的是,如果我添加一个小时,它会正确使用它,但日期仍然不正确:
my_period = pd.date_range('2015-09-01 02:10', '2016-07-01', freq='3M')
my_period
DatetimeIndex(['2015-09-30 02:10:00', '2015-12-31 02:10:00',
'2016-03-31 02:10:00', '2016-06-30 02:10:00'],
dtype='datetime64[ns]', freq='3M')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
622 次 |
| 最近记录: |