时间排序

 

在 pandas 中,有一个非常常用的函数 date_range,尤其是在处理时间序列数据时,这个函数的作用就是产生一个
DatetimeIndex,就是时间序列数据的索引。

 

pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, 
normalize=False, name=None, closed=None, **kwargs) →
pandas.core.indexes.datetimes.DatetimeIndex

返回一个固定频率的DatetimeIndex。

参数:

    start:str 或 datetime-like,可选,默认值是None,表示日期的起点。

    end:str 或 datetime-like,可选,默认值是None,表示日期的终点。

    periods:
int,可选,默认值是None,表示你要从和这个函数产生多少个日期索引值(要生成的周期数);如果是None的话,那么 start 和 end 必须不能为
None。

    freq:str 或 DateOffset,默认 “D”,表示以自然日为单位,这个参数用来指定计时单位,比如 “5H”表示每隔5个小时计算一次。

名称说明 
B业务日频率 
C自定义业务日频率 
D日历天频率 
W每周一次的频率 
M月结束频率 
SM月结频次(15次、月末) 
BM
业务月末频率
 
CBM
自定义业务月底频率
 
MS月开始频率 
SMS开始频率(1号、15号) 
BMS
业务月开始频率
 
CBMS
自定义业务月开始频率
 
Q季度结束频率 
BQ
业务季度结束频率
 
QS
季度开始频
 
BQS
季度开始频率
 
A, Y年底频率 
BA, BY
业务年度结束频率
 
AS, YS
年开始频
 
BAS, BYS
业务年度开始频率
 
BH
营业时间频率
 
H每小时的频率 
T, min
每分钟的频率
 
S每秒频率 
L, ms毫秒 
U, us微秒 
N纳秒 
    tz:str 或 tzinfo,可选,返回本地化的DatetimeIndex的时区名称,例如' Asia/Hong_Kong
'。默认情况下,生成的DatetimeIndex是与时区无关的。

normalize:bool,默认 False。如果为 True 的话,那么在产生时间索引值之前会先把 start 和 end 都转化为当日的午夜 0 点。

name:str,默认 None。给返回的时间索引指定一个名字。

closed:{None, ‘left’, ‘right’},可选。默认值为 None,表示
start 和 end 这个区间端点是否包含在区间内,可以有三个值,“left” 表示左闭右开区间,“right” 表示左开右闭区间,None 表示两边都是闭区间。

**kwargs:兼容性,对结果没影响。
import pandas as pd, numpy as np # 创建时间序列(默认 freq="D") time_index =
pd.date_range(start="2020-03-01", end="2020-03-15") print(time_index) # 运行结果:
DatetimeIndex(['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04',
'2020-03-05', '2020-03-06', '2020-03-07', '2020-03-08', '2020-03-09',
'2020-03-10', '2020-03-11', '2020-03-12', '2020-03-13', '2020-03-14',
'2020-03-15'], dtype='datetime64[ns]', freq='D') # 创建 10 个时间序列 time_index02 =
pd.date_range(start="2020-03-01", periods=10) print(time_index02) # 运行结果:
DatetimeIndex(['2020-03-01', '2020-03-02', '2020-03-03', '2020-03-04',
'2020-03-05', '2020-03-06', '2020-03-07', '2020-03-08', '2020-03-09',
'2020-03-10'], dtype='datetime64[ns]', freq='D') # 创建一个时间序列,步长 3 天 time_index03
= pd.date_range(start="2020-03-01", periods=10, freq="3D") print(time_index03)
# 运行结果: DatetimeIndex(['2020-03-01', '2020-03-04', '2020-03-07', '2020-03-10',
'2020-03-13', '2020-03-16', '2020-03-19', '2020-03-22', '2020-03-25',
'2020-03-28'], dtype='datetime64[ns]', freq='3D') # 创建一个时间序列,以分钟为步长
time_index04 = pd.date_range(start="2020-03-01", periods=10, freq="S")
print(time_index04) # 运行结果: DatetimeIndex(['2020-03-01 00:00:00', '2020-03-01
00:00:01', '2020-03-01 00:00:02', '2020-03-01 00:00:03', '2020-03-01 00:00:04',
'2020-03-01 00:00:05', '2020-03-01 00:00:06', '2020-03-01 00:00:07',
'2020-03-01 00:00:08', '2020-03-01 00:00:09'], dtype='datetime64[ns]',
freq='S') data = np.random.randint(3000, 3010, 10) print(data) # 运行结果: [3001
3005 3001 3009 3002 3008 3002 3000 3001 3003] time_index05 = pd.Series(data,
time_index04) print(time_index05) # 运行结果: 2020-03-01 00:00:00 3001 2020-03-01
00:00:01 3005 2020-03-01 00:00:02 3001 2020-03-01 00:00:03 3009 2020-03-01
00:00:04 3002 2020-03-01 00:00:05 3008 2020-03-01 00:00:06 3002 2020-03-01
00:00:07 3000 2020-03-01 00:00:08 3001 2020-03-01 00:00:09 3003 Freq: S, dtype:
int32
 

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信