Pandas处理时间序列数据操作详解

作者:fanstuck 时间:2021-06-19 07:21:45 

前言

一般从数据库或者是从日志文件读出的数据均带有时间序列,做时序数据处理或者实时分析都需要对其时间序列进行归类归档。而Pandas是处理这些数据很好用的工具包。此篇博客基于Jupyter之上进行演示,本篇博客的愿景是希望我或者读者通过阅读这篇博客能够学会方法并能实际运用。希望读者看完能够提出问题或者看法,博主会长期维护博客做及时更新。纯分享,希望大家喜欢。

一、获取时间

python自带datetime库,通过调用此库可以获取本地时间

from datetime import datetime
datetime.now()

Pandas处理时间序列数据操作详解

 同时也可以独立获取年月日:

datetime.now().day
datetime.now().year
datetime.now().moth

 isoweekday()获取符合ISO标准的指定日期所在的星期数:

datetime.now().isoweekday()

Pandas处理时间序列数据操作详解

为星期二。

但也有weekeday()方法但是是从0开始,也就是说0也就是周一,需要加一转为周数:

datetime.now().weekday()+1

Pandas处理时间序列数据操作详解

 datetime可以将日期(date)和时间(time)分隔开:

datetime.now().date()

Pandas处理时间序列数据操作详解

datetime.now().time()

Pandas处理时间序列数据操作详解

也可以用timetuple()函数将整个时间拆分为结构体:

datetime.now().timetuple()

Pandas处理时间序列数据操作详解

 要转换为自定义熟悉的时间表达可以使用strftime()函数,其输出代码格式有以下几种:

Pandas处理时间序列数据操作详解

datetime.now().strftime('%Y-%m-%d')

Pandas处理时间序列数据操作详解

datetime.now().strftime('%m/%d/%Y %H:%M:%S')

Pandas处理时间序列数据操作详解

二、时间索引

时间索引是根据数据的时间来处理时序数据进行归档筛选的一种索引方式。

展示数据:

Pandas处理时间序列数据操作详解

首先查看类型是否为 datetime类型,是该类型再重新设定索引,否则需要先把索引时间列转换为datetime类型再进行设定。

df1.set_index('first_order_time')

 若要查找2019年的数据,只需要在 后面加上日期即可:

df1['2019']

Pandas处理时间序列数据操作详解

想要获取详细的日期的数据只需要在[]里面输入对应的日期即可:

df1['2019-05-13']

Pandas处理时间序列数据操作详解

获取区间日期数据:

df1['2019-05-01':'2019-05-13']

Pandas处理时间序列数据操作详解

三、时间推移

 如果时序数据提取出来时间并不符合对应时间戳,则可以使用timedelta进行推移时间:

timedelta类表示为时间差,可直接实例化也可以由两个datetime进行相减操作得到。

Pandas处理时间序列数据操作详解

可表示的时间差依次为:

days,seconds,microseconds,minutes,hours,weeks

 如我们要推移一天时间:

date = datetime(2019,5,10)
date+timedelta(days = 1)

Pandas处理时间序列数据操作详解

 往后推移只需要减去对应天数就好了。

比起timedelta,有date offset可以直接进行时间推移,并不需要换算,效率比timedelta要快很多。

引入库:

from pandas.tseries.offsets import Day,Hour,Minute
date+Day(1)

计算结果为timestamp: 

Pandas处理时间序列数据操作详解

来源:https://blog.csdn.net/master_hunter/article/details/124785079

标签:Pandas,处理,时间,序列,数据
0
投稿

猜你喜欢

  • JavaScript定义函数的三种实现方法

    2024-04-16 09:06:15
  • Python中JSON的使用方法(超详细)

    2023-11-15 23:04:19
  • python unittest单元测试的步骤分析

    2022-03-21 05:59:10
  • python3 tcp的粘包现象和解决办法解析

    2022-08-02 02:22:53
  • Golang控制协程执行顺序方法详解

    2024-02-20 13:00:21
  • Python中反转二维数组的行和列问题

    2021-06-24 13:48:27
  • 基于Python的ModbusTCP客户端实现详解

    2022-02-03 10:54:25
  • Python实现并行抓取整站40万条房价数据(可更换抓取城市)

    2021-09-24 10:56:43
  • 用js实现用户输入密码的强度

    2007-11-22 21:41:00
  • 浅谈javascript:两种注释,声明变量,定义函数

    2024-04-16 09:06:06
  • Python 3行代码提取音乐高潮部分

    2021-11-14 13:15:54
  • 制作Python数字华容道的实现(可选择关卡)

    2022-12-20 19:32:18
  • 初瞥 Google Chrome Frame

    2009-10-06 14:41:00
  • Python requests库用法实例详解

    2021-03-31 19:36:30
  • pycharm-professional-2020.1下载与激活的教程

    2023-03-08 08:12:38
  • Python 文件操作实现代码

    2023-07-12 08:30:59
  • 教你轻松了解MySQL数据库中的结果字符串

    2009-02-23 17:29:00
  • 说说tab设计

    2009-07-26 09:56:00
  • TensorFlow 合并/连接数组的方法

    2021-08-19 16:28:35
  • Golang优雅保持main函数不退出的办法

    2023-07-12 21:15:54
  • asp之家 网络编程 m.aspxhome.com