Python pandas dataframe 时间序列 date_range()方法使用技巧

@创建于:20210715
@修改于:20210715

文章目录

    • 1 方法及参数介绍
    • 2 例子
    • 3 参考链接

pandas.date_range()方法,用于生成一个固定频率的DatetimeIndex时间索引。

1 方法及参数介绍

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中的两个。

2 例子

(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

3 参考链接

  • pandas.date_range
  • freq的Offset aliases
  • pandas.date_range()用法
  • pandas中时间序列——date_range函数
  • 【数据分析可视化】时间序列数据的采样和画图

你可能感兴趣的:(python)