Pandas处理时间序列数据操作详解
作者:fanstuck 发布时间:2021-06-19 07:21:45
前言
一般从数据库或者是从日志文件读出的数据均带有时间序列,做时序数据处理或者实时分析都需要对其时间序列进行归类归档。而Pandas是处理这些数据很好用的工具包。此篇博客基于Jupyter之上进行演示,本篇博客的愿景是希望我或者读者通过阅读这篇博客能够学会方法并能实际运用。希望读者看完能够提出问题或者看法,博主会长期维护博客做及时更新。纯分享,希望大家喜欢。
一、获取时间
python自带datetime库,通过调用此库可以获取本地时间
from datetime import datetime
datetime.now()
同时也可以独立获取年月日:
datetime.now().day
datetime.now().year
datetime.now().moth
isoweekday()获取符合ISO标准的指定日期所在的星期数:
datetime.now().isoweekday()
为星期二。
但也有weekeday()方法但是是从0开始,也就是说0也就是周一,需要加一转为周数:
datetime.now().weekday()+1
datetime可以将日期(date)和时间(time)分隔开:
datetime.now().date()
datetime.now().time()
也可以用timetuple()函数将整个时间拆分为结构体:
datetime.now().timetuple()
要转换为自定义熟悉的时间表达可以使用strftime()函数,其输出代码格式有以下几种:
datetime.now().strftime('%Y-%m-%d')
datetime.now().strftime('%m/%d/%Y %H:%M:%S')
二、时间索引
时间索引是根据数据的时间来处理时序数据进行归档筛选的一种索引方式。
展示数据:
首先查看类型是否为 datetime类型,是该类型再重新设定索引,否则需要先把索引时间列转换为datetime类型再进行设定。
df1.set_index('first_order_time')
若要查找2019年的数据,只需要在 后面加上日期即可:
df1['2019']
想要获取详细的日期的数据只需要在[]里面输入对应的日期即可:
df1['2019-05-13']
获取区间日期数据:
df1['2019-05-01':'2019-05-13']
三、时间推移
如果时序数据提取出来时间并不符合对应时间戳,则可以使用timedelta进行推移时间:
timedelta类表示为时间差,可直接实例化也可以由两个datetime进行相减操作得到。
可表示的时间差依次为:
days,seconds,microseconds,minutes,hours,weeks
如我们要推移一天时间:
date = datetime(2019,5,10)
date+timedelta(days = 1)
往后推移只需要减去对应天数就好了。
比起timedelta,有date offset可以直接进行时间推移,并不需要换算,效率比timedelta要快很多。
引入库:
from pandas.tseries.offsets import Day,Hour,Minute
date+Day(1)
计算结果为timestamp:
来源:https://blog.csdn.net/master_hunter/article/details/124785079
猜你喜欢
- 前言python内建函数指的是python自带的函数,这种函数不需要定义,并且不同的内建函数具有不同的功能,可以直接使用。A类abs() 函
- 我就废话不多说了,直接上代码吧!# 寻找局部最高点# 输入input: 含有最高点高度的列表# 输出output: 返回最高点的位置# 时间
- 本文为大家分享了mysql 5.7.18 Archive压缩版安装的具体方法,供大家参考,具体内容如下文章参考:5.7.17 winx64安
- 前几天,看到有人写了个superLink的东东,主要的做什么用呢?我们有时会给在大块元素加个window.location='htt
- 本文实例讲述了linux下通过go语言获得系统进程cpu使用情况的方法。分享给大家供大家参考。具体分析如下:这段代码通过linux的系统命令
- 本文为大家分享了Python2.7与Python3.6环境切换的具体方法,供大家参考,具体内容如下系统支持为:Ubuntu18.04系统默认
- 在mysql网站时拿到的rpm包只能用root安装,不支持relocate用源码安装后./configure --prefix=/home/
- 应用场景1.需要将大型MP3文件切割成较小的部分以便上传或发送。2.需要从MP3文件中提取特定的音频片段,以便用于其他目的。3.需要快速制作
- 我就废话不多说了,大家还是直接看代码吧~package mainimport ("encoding/json""
- 本文实例讲述了Python实现获取汉字偏旁部首的方法。分享给大家供大家参考,具体如下:功能介绍传入一个汉字,返回其偏旁部首字典分为本地字典与
- HTML 的空白符处理规则HTML 中的“空白符”包括空格 (space)、制表符 (tab)、换行符 (CR/LF) 三种。我们知道,在默
- <% dim result,result1 str="ad_asp之家_nzlkjlkfjoj
- 介绍一下,如何在php程序中运行Python脚本,在php中python程序的运行,主要依靠 程序执行函数,这里说一下三个相关函数:exec
- 本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作。分享给大家供大家参考,具体如下:一、pyautogui模块简要
- 在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次
- 本文实例为大家分享了python3 smtplib发送邮件的具体代码,供大家参考,具体内容如下smtplib模块是smtp简单邮件传输协议客
- FTP即文件传输协议;它基于客户机-服务器模型体系结构,应用广泛。它有两个通道:一个命令通道和一个数据通道。命令通道用于控制通信,数据通道用
- python操作mongodb数据库# !/usr/bin/env python# -*- coding:utf-8 -*-"&q
- 命名一直是个让我头痛的问题,特别是那些看上去差不多的模块,所以就得想办法啦,我总结了下面的方法,虽然还在试验中。希望对大家有帮助。欢迎大家提
- 我在代码里定义了两个通道,分别用于生产端口和限制连接数,如果不限制连接数,容易被对方检测到或导致对方服务器不能正常运行。// 生产端口var