一文速学-Pandas处理时间序列数据操作详解

简介: 一文速学-Pandas处理时间序列数据操作详解

前言


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


一、获取时间


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


1. from datetime import datetime
2. datetime.now()


12657cff9a1646cfb55050c4a19a3699.png

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


1. datetime.now().day
2. datetime.now().year
3. datetime.now().moth


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


datetime.now().isoweekday()


1e0696db46914a3983c1c897e9d9116e.png 为星期二。

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


datetime.now().weekday()+1



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


datetime.now().date()


2b0e3fda28464f25b9ed184305397b2b.png


datetime.now().time()

cdf1c335c68346649cd8ff8a2fcd7d29.png


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


datetime.now().timetuple()


f07c78c230db4819a3c0a7f4d7ec842e.png


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


image.png


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


4aad601c75f945b78d224b50708cebf6.png


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


a234004fe20a45b68176cad63b37275c.png

二、时间索引


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

4906b0bf77c74d1ca6757a6f908bfd65.png


展示数据


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


df1.set_index('first_order_time')


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


df1['2019']


91c9b42e09e5439584e59a1a9928dcd4.png


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


df1['2019-05-13']

b6df93946ddd46a5a3d2c59d28db1e96.png


获取区间日期数据:


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


faf75f2a06a64b03991d854b6f4cf21e.png


三、时间推移


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


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

3b5ef521b1444d43acdc0012237f7f34.png


可表示的时间差依次为:

days,seconds,microseconds,minutes,hours,weeks

如我们要推移一天时间:


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


f83540f4d7bf44d9aa18960b62418160.png


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

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

引入库:

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


计算结果为timestamp:

496ab3b1153f4262bb7e427b31774853.png

目录
相关文章
|
16天前
|
Python
|
16天前
|
Python
|
15天前
|
Python
Pandas 常用函数-数据合并
Pandas 常用函数-数据合并
31 1
|
16天前
|
索引 Python
Pandas 常用函数-数据排序
10月更文挑战第28天
8 1
|
17天前
|
Python
Pandas 常用函数-查看数据
Pandas 常用函数-查看数据
14 2
|
17天前
|
SQL JSON 数据库
Pandas 常用函数-读取数据
Pandas 常用函数-读取数据
13 2
|
20天前
|
Python
通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法
在金融分析领域,"死叉"指的是短期移动平均线(如MA5)下穿长期移动平均线(如MA10),而"金叉"则相反。本文介绍了一种利用Python编程语言,通过Pandas库处理股票收盘价数据,识别最近一次死叉后未出现金叉的具体位置的方法。该方法首先计算两种移动平均线,接着确定它们的交叉点,最后检查并输出最近一次死叉及其后是否形成了金叉。此技术广泛应用于股市趋势分析。
38 2
|
15天前
|
Python
Pandas 常用函数-数据选择和过滤
Pandas 常用函数-数据选择和过滤
10 0
|
1月前
|
数据可视化 数据挖掘 数据处理
模型预测笔记(四):pandas_profiling生成数据报告
本文介绍了pandas_profiling库,它是一个Python工具,用于自动生成包含多种统计指标和可视化的详细HTML数据报告,支持大型数据集并允许自定义配置。安装命令为`pip install pandas_profiling`,使用示例代码`pfr = pandas_profiling.ProfileReport(data_train); pfr.to_file("./example.html")`。
48 1
|
2月前
|
索引 Python
使用 pandas 对数据进行移动计算
使用 pandas 对数据进行移动计算
23 0