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
猜你喜欢
- 虽然初恋是java, 可是最近是越来越喜欢python,所以决定追根溯源好好了解下python的原理,架构等等.小脑袋瓜不太好使,只能记录下
- 阅读上一篇:你是真正的用户体验设计者吗? Ⅰwrite2vin 的 原文路宛兮写的简介:本文介绍了: 1.关于用户体验的几种观点; 2.关于
- 一切皆是对象在 Python 一切皆是对象,包括所有类型的常量与变量,整型,布尔型,甚至函数。 参见stackoverflow上的一个问题
- 导语元宵节,又称上元节、灯节,是春节之后的第一个重要节日。相传,汉文帝(前179—前157年)为庆祝周勃于正月十五勘平诸
- 1、到python官网 https://www.python.org 查找最新的原码,我使用的,Python-3.6.32、mkdir /h
- IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Hugunin所发起,是一个开源的项目,基于微软
- 如果是报名培训班的话,学习的速度可能会更快一些,毕竟是自己花钱了。自学python爬虫方法:首先要掌握一些有关爬虫的基础知识,基本的要知道什
- python 二维列表转置def transpose(self, matrix): new_matrix = []
- 本文实例讲述了Python使用百度翻译开发平台实现英文翻译为中文功能。分享给大家供大家参考,具体如下:#coding=utf8import
- 您是否常常在做网页的过程中发现一个问题呢?当图片上传的时候,如果图片太大 ,就会把网页撑破,唯一做的就要先把它用软件缩小,再上传上
- 一、安装配置PHP1、下载Php的版本zip包之后,解压缩到指定目录。下载地址:http://www.php.net/downl
- python 类详解类1.类是一种数据结构,可用于创建实例。(一般情况下,类封装了数据和可用于该数据的方法)2.Python类是可调用的对象
- 比较喜欢python的装饰器, 试了下一种用法,通过装饰器来传递sql,并执行返回结果这个应用应该比较少为了方便起见,直接使用了ironpy
- 如果你象作者一样记性不好,那么你可能根本记不住人们的名字。我遇到人时,多半只是点点头,问句“吃了嘛!”,而且期望问候到此为止 。如果还需要表
- 这是一套适用于JavaScript程序的编码规范。它基于Sun的Java程序编码规范。但进行了大幅度的修改, 因为JavaScript不是J
- scipy.optimize函数使用简单使用scipy.optimize,训练逻辑回归损失函数,得到权值。scipy.optimize模块包
- 1、requests 的常见用法requests 除了 url 之外,还有 params, data 和 files 三个参数,用于和服务器
- 前言:为了获取一定高级操作,如:微信模板消息(xiao,xin)推送,把消息推送给用户,或者是获取用户授权信息都需要用到access tok
- interfaceGo语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被inter
- 报表服务器数据库可以为一个或多个报表服务器实例提供内部存储。因为报表服务器数据库架构可能会因为推出新的 Reporting Services