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

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

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 参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值