今天就跟大家聊聊有关python中怎么使用pandas实现时序处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创建时间序列
函数pd.date_range()
根据指定的范围,生成时间序列DatetimeIndex,每隔元素的类型为Timestamp。该函数应用较多。
ts = pd.date_range('2017-09-01', periods=10, freq='d', normalize=False)
ts
输出为:
DatetimeIndex(['2017-09-01', '2017-09-02', '2017-09-03', '2017-09-04',
'2017-09-05', '2017-09-06', '2017-09-07', '2017-09-08',
'2017-09-09', '2017-09-10'],
dtype='datetime64[ns]', freq='D'
主要的入参解析:
start: 开始时刻,可以是字符串或者datetime类型的值。默认None。
end: 结束时刻,可以是字符串或者datetime类型的值,如果指定了长度,即periods,则可不设置。默认None。
periods: 时序的长度,整型类型。如果有end,可不设置。默认None。
freq: 时序生成的频率,即每隔多少时刻生成一个时序点。字符串类型或者DateOffset类型。默认'D',即天粒度,见上述代码输出。
tz: 时区,字符串类型。默认None。
normalize: bool类型,没用过,不知道干啥的。
name: 设置时序的名称,字符串类型,默认None。
closed: 是否包含两边的值。默认None,即两边都保留。
其中,freq的取值可以为如下的符号表示间隔,可以结合符号和数字,如'3d',表示每隔三天记录一个时间点。大小写都可以。
B business day frequency
C custom business day frequency (experimental)
D calendar day frequency
W weekly frequency
M month end frequency
SM semi-month end frequency (15th and end of month)
BM business month end frequency
CBM custom business month end frequency
MS month start frequency
SMS semi-month start frequency (1st and 15th)
BMS business month start frequency
CBMS custom business month start frequency
Q quarter end frequency
BQ business quarter endfrequency
QS quarter start frequency
BQS business quarter start frequency
A year end frequency
BA business year end frequency
AS year start frequency
BAS business year start frequency
BH business hour frequency
H hourly frequency
T, min minutely frequency
S secondly frequency
L, ms milliseconds
U, us microseconds
N nanoseconds
字符串转换为时间戳
pd.to_datetime() 函数可以将表示时间的字符串转换位TimeStamp。
pd.to_datetime('2017-09-01')
输出为:
Timestamp('2017-09-01 00:00:00')
常用的参数:
format: 用来设置字符串的格式,默认如上所示。
时间戳的加减
有时候需要将时间进行增减,可以使用类型:DateOffset。
pd.to_datetime('2017-09-01') + pd.DateOffset(days=10)
输出为:
Timestamp('2017-09-11 00:00:00')
DateOffset常用的参数:
months,设置月。
days,设置天。
years,设置年。
hours,设置小时。
minutes,设置分钟。
seconds,设置秒。
以上可以同时设置,组合使用。
pd.to_datetime('2017-09-01') + pd.DateOffset(seconds=10, days = 10)
输出为:
Timestamp('2017-09-11 00:00:10')
看完上述内容,你们对python中怎么使用pandas实现时序处理有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。