iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何进行Pandas库中时间序列的处理
  • 901
分享到

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

2023-06-02 06:06:02 901人浏览 安东尼
摘要

这期内容当中小编将会给大家带来有关如何进行pandas库中时间序列的处理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在使用python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与

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

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

生成日期序列

主要提供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')"""

生成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:<class 'pandas._libs.tslibs.timestamps.Timestamp'>#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:<class 'pandas._libs.tslibs.timestamps.Timestamp'>#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:<class 'pandas._libs.tslibs.period.Period'>

生成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

生成时间间隔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

重采样及频率转换

#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库中时间序列的处理了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 如何进行Pandas库中时间序列的处理

本文链接: https://www.lsjlt.com/news/229101.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何进行Pandas库中时间序列的处理
    这期内容当中小编将会给大家带来有关如何进行Pandas库中时间序列的处理,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与...
    99+
    2023-06-02
  • Pandas中时间序列的处理方法
    这篇文章主要为大家展示了“Pandas中时间序列的处理方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Pandas中时间序列的处理方法”这篇文章吧。一、时间序列数据的生成pd.date_ran...
    99+
    2023-06-15
  • Hive中的时间序列分析是如何进行的
    在Hive中进行时间序列分析通常涉及以下步骤: 创建时间序列数据表:首先,需要创建一个包含时间序列数据的表。可以使用Hive的C...
    99+
    2024-04-02
  • Pandas处理时间序列数据操作详解
    目录前言一、获取时间二、时间索引三、时间推移前言 一般从数据库或者是从日志文件读出的数据均带有时间序列,做时序数据处理或者实时分析都需要对其时间序列进行归类归档。而Pandas是处理...
    99+
    2024-04-02
  • Torch中如何处理时间序列数据
    在Torch中处理时间序列数据通常涉及到使用特定的库或模块来进行数据预处理、建模和训练。以下是一些处理时间序列数据的常见方法: ...
    99+
    2024-04-02
  • MariaDB中如何处理时间序列数据
    在MariaDB中处理时间序列数据通常会使用日期和时间函数来操作数据。以下是一些常用的日期和时间函数: NOW():返回当前日期和...
    99+
    2024-04-09
    MariaDB
  • Cassandra如何处理时间序列数据
    Cassandra是一个分布式数据库系统,通常用于处理大规模数据和高并发读写操作。在处理时间序列数据时,Cassandra可以使用以...
    99+
    2024-04-09
    Cassandra
  • Pandas 时间序列分析中的resample函数
    Pandas 中的resample函数用于各种频率的转换工作。 resample的参数如下: 参数描述freq转换频率axis=0重采样的轴closed=None在降采样中,设置各时...
    99+
    2024-04-02
  • 如何理解时间序列数据库InfluxDB
    如何理解时间序列数据库InfluxDB,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。   性能监控中的很多数据都是根据时间维度来生...
    99+
    2024-04-02
  • Keras中如何处理时间序列预测任务
    在Keras中处理时间序列预测任务通常涉及到使用循环神经网络(RNN)或卷积神经网络(CNN)来构建模型。下面是一个简单的使用RNN...
    99+
    2024-03-08
    Keras
  • Python  处理 Pandas DataFrame 中的行和列
    目录处理列处理行前言: 数据框是一种二维数据结构,即数据以表格的方式在行和列中对齐。我们可以对行/列执行基本操作,例如选择、删除、添加和重命名。在本文中,我们使用的是nba.csv文...
    99+
    2024-04-02
  • Pandas.DataFrame时间序列数据处理如何实现
    本篇内容主要讲解“Pandas.DataFrame时间序列数据处理如何实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Pandas.DataFrame时间序列数据处理如何实现”吧!将panda...
    99+
    2023-07-05
  • python如何对日期时间进行处理
    这篇文章给大家分享的是有关python如何对日期时间进行处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发中常用的日期操作有哪些?获取当前时间获取系统秒数(从纪元时间开始)日期跟秒数之间转换获取日历等日期格式...
    99+
    2023-06-22
  • python 如何用pandas同时对多列进行赋值
    本篇内容主要讲解“python 如何用pandas同时对多列进行赋值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python 如何用pandas同时对多列进行赋值”吧!如dataframe&n...
    99+
    2023-06-14
  • Cassandra中的时间序列数据怎么处理
    在Cassandra中处理时间序列数据时,一般可以使用以下几种方法: 使用时间戳作为行键:可以将时间戳作为行键,这样可以方便按时...
    99+
    2024-04-02
  • Teradata如何处理时间序列数据和空间数据
    Teradata是一个强大的数据仓库解决方案,可以处理各种类型的数据,包括时间序列数据和空间数据。在处理时间序列数据时,Terada...
    99+
    2024-04-09
    Teradata
  • 如何使用C++进行时间序列分析和预测?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • PyTorch中怎么处理时间序列数据
    在PyTorch中处理时间序列数据通常需要使用torch.utils.data.Dataset和torch.utils.data.D...
    99+
    2024-03-05
    PyTorch
  • PHP中如何进行时序数据分析和处理?
    PHP是一种开源的脚本语言,可以用于构建各种类型的网站和应用程序,因此在网站开发和数据分析方面广泛应用。时序数据是指以时间为基础的数据集合,如传感器数据、金融数据等。在处理这些数据时,需要了解PHP中的时序数据分析和处理方式。一、时序数据分...
    99+
    2023-05-22
    分析 处理 时序数据
  • Java 进行时间处理的步骤
    目录一、Calendar (1)、Calender介绍 (2)、简单的日期使用(3)、与Date之间的转换二、Apache下的DateUtils 三、JDK1.8新增的日期API L...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作