千家信息网

如何进行Pandas库中时间序列的处理

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关如何进行Pandas库中时间序列的处理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在使用Python进行数据分析时,经常会遇到时
千家信息网最后更新 2026年11月01日如何进行Pandas库中时间序列的处理

这期内容当中小编将会给大家带来有关如何进行Pandas库中时间序列的处理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与时间相关的数据,比如量化交易就是从历史数据中寻找股价的变化规律。Python中自带的处理时间的模块有datetime,NumPy库也提供了相应的方法,Pandas作为Python环境下的数据分析库,更是提供了强大的日期数据处理的功能,是处理时间序列的利器。

1、生成日期序列

主要提供pd.data_range()和pd.period_range()两个方法,给定参数有起始时间、结束时间、生成时期的数目及时间频率(freq='M'月,'D'天,'W',周,'Y'年)等。

两种主要区别在于pd.date_range()生成的是DatetimeIndex格式的日期序列;pd.period_range()生成的是PeriodIndex格式的日期序列。

以下通过生成月时间序列和周时间序列来对比下:

date_rng = pd.date_range('2019-01-01', freq='M', periods=12)print(f'month date_range():{date_rng}')"""date_range():DatetimeIndex(['2019-01-31', '2019-02-28', '2019-03-31', '2019-04-30', '2019-05-31', '2019-06-30', '2019-07-31', '2019-08-31', '2019-09-30', '2019-10-31', '2019-11-30', '2019-12-31'], dtype='datetime64[ns]', freq='M')"""period_rng = pd.period_range('2019/01/01', freq='M', periods=12)print(f'month period_range():{period_rng}')"""period_range():PeriodIndex(['2019-01', '2019-02', '2019-03', '2019-04', '2019-05', '2019-06', '2019-07', '2019-08', '2019-09', '2019-10', '2019-11', '2019-12'], dtype='period[M]', freq='M')"""date_rng = pd.date_range('2019-01-01', freq='W-SUN', periods=12)print(f'week date_range():{date_rng}')"""week date_range():DatetimeIndex(['2019-01-06', '2019-01-13', '2019-01-20', '2019-01-27', '2019-02-03', '2019-02-10', '2019-02-17', '2019-02-24', '2019-03-03', '2019-03-10', '2019-03-17', '2019-03-24'], dtype='datetime64[ns]', freq='W-SUN')"""period_rng=pd.period_range('2019-01-01',freq='W-SUN',periods=12)print(f'week period_range():{period_rng}')"""week period_range():PeriodIndex(['2018-12-31/2019-01-06', '2019-01-07/2019-01-13', '2019-01-14/2019-01-20', '2019-01-21/2019-01-27', '2019-01-28/2019-02-03', '2019-02-04/2019-02-10', '2019-02-11/2019-02-17', '2019-02-18/2019-02-24', '2019-02-25/2019-03-03', '2019-03-04/2019-03-10', '2019-03-11/2019-03-17', '2019-03-18/2019-03-24'], dtype='period[W-SUN]', freq='W-SUN')"""date_rng = pd.date_range('2019-01-01 00:00:00', freq='H', periods=12)print(f'hour date_range():{date_rng}')"""hour date_range():DatetimeIndex(['2019-01-01 00:00:00', '2019-01-01 01:00:00', '2019-01-01 02:00:00', '2019-01-01 03:00:00', '2019-01-01 04:00:00', '2019-01-01 05:00:00', '2019-01-01 06:00:00', '2019-01-01 07:00:00', '2019-01-01 08:00:00', '2019-01-01 09:00:00', '2019-01-01 10:00:00', '2019-01-01 11:00:00'], dtype='datetime64[ns]', freq='H')"""period_rng=pd.period_range('2019-01-01 00:00:00',freq='H',periods=12)print(f'hour period_range():{period_rng}')"""hour period_range():PeriodIndex(['2019-01-01 00:00', '2019-01-01 01:00', '2019-01-01 02:00', '2019-01-01 03:00', '2019-01-01 04:00', '2019-01-01 05:00', '2019-01-01 06:00', '2019-01-01 07:00', '2019-01-01 08:00', '2019-01-01 09:00', '2019-01-01 10:00', '2019-01-01 11:00'], dtype='period[H]', freq='H')"""

2、生成Timestamp对象及转换

创建一个Timestamp时间戳对象有pd.Timestamp()方法和pd.to_datetime()方法。如下所示:

ts=pd.Timestamp(2019,1,1)print(f'pd.Timestamp()-1:{ts}')#pd.Timestamp()-1:2019-01-01 00:00:00ts=pd.Timestamp(dt(2019,1,1,hour=0,minute=1,second=1))print(f'pd.Timestamp()-2:{ts}')#pd.Timestamp()-2:2019-01-01 00:01:01ts=pd.Timestamp("2019-1-1 0:1:1")print(f'pd.Timestamp()-3:{ts}')#pd.Timestamp()-3:2019-01-01 00:01:01print(f'pd.Timestamp()-type:{type(ts)}')#pd.Timestamp()-type:#dt=pd.to_datetime(2019,1,1) 不支持dt=pd.to_datetime(dt(2019,1,1,hour=0,minute=1,second=1))print(f'pd.to_datetime()-1:{dt}')#pd.to_datetime()-1:2019-01-01 00:01:01dt=pd.to_datetime("2019-1-1 0:1:1")print(f'pd.to_datetime()-2:{dt}')#pd.to_datetime()-2:2019-01-01 00:01:01print(f'pd.to_datetime()-type:{type(dt)}')#pd.to_datetime()-type:#pd.to_datetime生成自定义时间序列dtlist=pd.to_datetime(["2019-1-1 0:1:1", "2019-3-1 0:1:1"])print(f'pd.to_datetime()-list:{dtlist}')#pd.to_datetime()-list:DatetimeIndex(['2019-01-01 00:01:01', '2019-03-01 00:01:01'], dtype='datetime64[ns]', freq=None)#时间戳转换为period月时期pr = ts.to_period('M')print(f'ts.to_period():{pr}')#ts.to_period():2019-01print(f'pd.to_period()-type:{type(pr)}')#pd.to_period()-type:

3、生成period对象及转换

#定义时期periodper=pd.Period('2019')print(f'pd.Period():{per}')#pd.Period():2019per_del=pd.Period('2019')-pd.Period('2018')print(f'2019和2018间隔{per_del}年')#可以直接+、-整数(代表年)#2019和2018间隔1年#时期转换为时间戳print(per.to_timestamp(how='end'))#2019-12-31 00:00:00print(per.to_timestamp(how='start'))#2019-01-01 00:00:00

4、生成时间间隔Timedelta

#生成时间间隔Timedeltaprint(pd.Timedelta(days=5, minutes=50, seconds=20, milliseconds=10, microseconds=10, nanoseconds=10))#5 days 00:50:20.010010#获取当前时间now=pd.datetime.now()#计算当前时间往后50天的日期dt=now+pd.Timedelta(days=50)print(f'当前时间是{now}, 50天后时间是{dt}')#当前时间是2019-06-08 17:59:31.726065, 50天后时间是2019-07-28 17:59:31.726065#只显示年月日print(dt.strftime('%Y-%m-%d'))#2019-07-28

5、重采样及频率转换

#asfreq 按季度显示索引值#'DatetimeIndex' object has no attribute 'asfreq'date=pd.date_range('1/1/2018', periods=20, freq='D')tsdat_series=pd.Series(range(20),index=date)tsp_series=tsdat_series.to_period('D')print(tsp_series.index.asfreq('Q'))date=pd.period_range('1/1/2018', periods=20, freq='D')tsper_series=pd.Series(range(20),index=date)print(tsper_series.index.asfreq('Q'))"""PeriodIndex(['2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1', '2018Q1'], dtype='period[Q-DEC]', freq='Q-DEC')"""#resample 按季度统计并显示print(tsdat_series.resample('Q').sum().to_period('Q'))"""2018Q1 190Freq: Q-DEC, dtype: int64"""#groupby 按周进行汇总求平均值print(tsdat_series.groupby(lambda x:x.weekday).mean())"""0 7.01 8.02 9.03 10.04 11.05 12.06 9.5dtype: float64"""

上述就是小编为大家分享的如何进行Pandas库中时间序列的处理了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

时间 生成 序列 处理 日期 数据 分析 方法 时期 时间序列 对象 格式 中时 内容 天后 季度 数据分析 频率 强大 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 咖啡 喔噻互联网科技有限公司 厦门中拓互联网络科技有限公司 北京互联网科技公司 深圳互联网科技怎么样 博兴的互联网电子科技公司 江苏南京365互联网科技 北京大学互联网科技怎么样 剑昆互联网络科技有限公司临桂 互联网系的金融科技公司 宁夏众和广鑫互联网科技有限公司 知域互联网科技有限公司大骗子 互联网行业科技股 工业互联网展湾科技股份有限公司 中国互联网有什么科技 领航科技大厦互联网公司 卡尔迅互联网科技有限公司 广州梦谷互联网科技有限公司领导 萌小萌互联网科技河南有限公司 陕西彩京云互联网科技有限公司 互联网科技企业 互联网 卓越科技 郑州华宇互联网科技 海南科技产业互联网平台 互联网科技公司的市场部门 工业互联网展湾科技股份有限公司 元气玛特互联网科技公司是外包吗 昆明中奇联合互联网科技 保山互联网科技靠谱吗 黑龙江互联网科技公司
0