pandas 之时间排序

                                                                  时间排序

 

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

 

pandas.date_range(start=Noneend=Noneperiods=Nonefreq=Nonetz=Nonenormalize=Falsename=Noneclosed=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

 

你可能感兴趣的:(pandas 之时间排序)