@创建于:20210715
@修改于:20210715
pandas.date_range()方法,用于生成一个固定频率的DatetimeIndex时间索引。
pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=None, **kwargs) source
常用参数为start、end、periods、freq。
start:指定生成时间序列的开始时间
end:指定生成时间序列的结束时间
periods:指定生成时间序列的数量
freq:生成频率,默认‘D’,可以是‘D’(天)、‘10D’、’H’(时)、‘5H’、‘T’(分)、‘S’、‘15T’、‘M’(月),具体参见
还可以根据closed参数选择是否包含开始和结束时间,left包含开始时间,不包含结束时间,right与之相反。默认同时包含开始时间和结束时间。
normalize 默认为False,在生成日期范围之前将开始/结束日期标准化为午夜。
函数调用时至少要指定参数start、end、periods中的两个。
(1)指定起止时间
# 下面三个返回结果一致,date_range有一定的容错
pd.date_range(start='2021-07-01', end='2021-07-10')
pd.date_range(start='20210701', end='2021-07-10')
pd.date_range(start='20210701', end='20210710')
DatetimeIndex(['2021-07-01', '2021-07-02', '2021-07-03', '2021-07-04',
'2021-07-05', '2021-07-06', '2021-07-07', '2021-07-08',
'2021-07-09', '2021-07-10'],
dtype='datetime64[ns]', freq='D')
(2)指定开始时间、时间序列数量、频率
# 下面四个返回结果一致,date_range有一定的容错
pd.date_range(start='2021-06-15 08:10:50', periods=10, freq='H', normalize=True)
pd.date_range(start='20210615 08:10:50', periods=10, freq='H', normalize=True)
pd.date_range(start='20210615 081050', periods=10, freq='H', normalize=True)
pd.date_range(start='2021-06-15 081050', periods=10, freq='H', normalize=True)
DatetimeIndex(['2021-06-15 00:00:00', '2021-06-15 01:00:00',
'2021-06-15 02:00:00', '2021-06-15 03:00:00',
'2021-06-15 04:00:00', '2021-06-15 05:00:00',
'2021-06-15 06:00:00', '2021-06-15 07:00:00',
'2021-06-15 08:00:00', '2021-06-15 09:00:00'],
dtype='datetime64[ns]', freq='H')
pd.date_range(start='2021-06-15 08:10:50', periods=10, freq='H')
DatetimeIndex(['2021-06-15 08:10:50', '2021-06-15 09:10:50',
'2021-06-15 10:10:50', '2021-06-15 11:10:50',
'2021-06-15 12:10:50', '2021-06-15 13:10:50',
'2021-06-15 14:10:50', '2021-06-15 15:10:50',
'2021-06-15 16:10:50', '2021-06-15 17:10:50'],
dtype='datetime64[ns]', freq='H')
(3)时间序列做为索引,生成Series一维数组
dates = pd.date_range(end='20210715',periods=5,freq='2D')
pd.Series(range(0, 10, 2),index=dates)
2021-07-07 0
2021-07-09 2
2021-07-11 4
2021-07-13 6
2021-07-15 8
Freq: 2D, dtype: int64
(4)时间序列做行索引,生成DateFrame二维数组
dates = pd.date_range(end='20210715',periods=5,freq='2D')
pd.DataFrame(np.random.randn(5,5), index=dates, columns=list('ABCDE'))
A B C D E
2021-07-07 -0.238383 0.782582 -0.891933 0.166656 0.934376
2021-07-09 1.086387 -1.555243 -0.632910 0.348022 2.484548
2021-07-11 0.486423 0.201992 -1.023084 0.925972 -0.904108
2021-07-13 -0.787668 0.220440 -0.782202 -0.240775 -0.451474
2021-07-15 0.878642 -0.384790 -0.118660 2.302524 -0.868720