Python时间序列的基础

时间序列分析是我们围绕时间发生的日常活动的一部分。随着一天,一个月,几年的过去,我们周围的观察留下了一些信息。为了获得此信息,我们从统计分析中获得帮助,以某种格式制作了数据/信息并进行了分析。现在,随处可见越来越多的数据,因此很难使用简单的低级工具进行分析。因此,开发了新的工具和算法,以使该数据以合适的格式大量出现,并解决了我们获取信息的目的。

时间序列数据的收集和存储方式使我们可以进行未来的预测,并通过逐年增加收入来稳定业务增长。

我们如何处理时间序列数据?简单来说,我们处理时间和日期。哦!等待一秒钟,但它的视野比时间和日期还宽。它由时间,日期,星期,月份和日期中的秒,分钟和小时组成。

时间序列的应用在天气预报,股票市场,信号系统,数据传输管理等众多领域。

我们将逐步分析和实践python的时间序列。处理数据和时间的基本功能datetime在python中。

from datetime import datetime 
datetime(year=2020, month=12, day=30)
#Output: 
datetime.datetime(2020, 12, 30, 0, 0)

我们在输出中注意到的一件事是两个零,这些零指的是必须经过年,月,日的三个参数之后的小时和分钟

datetime(year=2020, month=12, day=30, hour=2, minute=3, second=15,
         microsecond=45)
#output:
datetime.datetime(2020, 12, 30, 2, 3, 15, 45)

好了,我们看到了用datetime对象创建数据和时间。在深入探讨之前,让我们获取一些在python中用于时间序列的定义。

  • Datetime:用于python中时间和序列的基本功能。
  • Dateutils:它也是一个基本功能对象,但作为第三方模块。dateutils如果未在python环境中安装pip命令,则可以安装。
pip install python-dateutil
  • 时间戳:用于了解特定时刻对象的确切参考。
  • 时间增量:以datetime班级中两个时间戳记之间的天数,小时数,分钟数或秒数为单位的时间段的持续时间。
  • 日历:类日历对象包含许多与日历相关的功能。通过使用日历类,我们可以访问许多方法,例如calendar weak day month范围 month HTML calendar等等。
  • 时间间隔:这是一个间隔时间点,即起点和终点。
  • 时间:这是datetime类中的一种方法,我们可以在其中访问和使用许多时间功能。

日期和时间功能也在NumPy库中。他们是用的名字datetime64和timedelta64。

我们还可以在Pandas库中看到主要的数据和时间创建方法。它们显示如下:

在日期时间→ to_datetime,to_range

在时间变化量→中to_timedelta,timedelta_range

在时间范围内→ period,period_range

在时间序列分析中,最好将日期和时间用于日期或时间分量作为序列或数据帧中的索引的情况。系列是单列,数据框是矩阵形式的许多列的组合。

dateutils处理部分字符串的使用解析。下面给出的示例显示了如何使用解析来从日期和时间格式的字符串中获取日期时间格式。

#import the parser function from the dateutil library
from dateutil import parser
date = parser.parse("10th of July, 2015")
date
#output:
datetime.datetime(2015, 7, 10, 0, 0)
-------------------------------------------------------------------
#import the parse for string 
from dateutil.parser import parse
parse("Yesterday was January 4, 2021", fuzzy_with_tokens=True)
#output:
(datetime.datetime(2021, 1, 4, 0, 0), ('Yesterday was ', ' ', ' '))

现在我们将与pandas讨论日期和时间,因为使用pandas可以处理具有大数据和日期/时间的系列或数据框,因为使用python可以轻松地获得索引。

大熊猫的时间序列示例:

#import pandas库
将pandas导入为pd
pd.Timedelta(“ 2天”)
#output:Timedelta('2 days 00:00:00')

要在熊猫中制作一系列日期并将其用作索引,请使用DatetimeIndex。

index = pd.DatetimeIndex(['2020-1-20', '2020-02-01','2021-01-01', 
                          '2021-02-01'])
index
#output:
DatetimeIndex(['2020-01-20', '2020-02-01', '2021-01-01', 
               '2021-02-01'], dtype='datetime64[ns]', freq=None)

假设我们要创建另一个系列并将索引系列保留为另一个系列的索引。因此,将形成两列,我们也可以将其称为数据帧。要使用列创建系列,请使用pd.series。

data = pd.Series([0, 1, 2, 3], index=index)
print(data)

Python时间序列的基础

 

要制作日期数据框,我们可以在熊猫中使用数据框

df = pd.DataFrame({'year':[2020,2021],'month':[1,2],'day':[ 
                   1,1]})
print(df)

我们可以datetime使用to_datetime

pd.to_datetime(df)
#输出:
0 2020-01-01 
1 2021-02-01 dtype 
:datetime64 [ns]

我们可以使用pd.series创建日期系列列

series_date = pd.Series(['2020-1-20','2020-1-21','2020-1-22',
              '2020-1-23','2020-1-24','2020- 1-25','2020-1-26'])
打印(series_date)

Python时间序列的基础

 

要了解与熊猫的时间三角洲。

pd.Timedelta(“ 2天00:00:00”)
#output:
Timedelta('2 days 00:00:00')
----------------------------------- ----------- 
pd.Timedelta(“ 2天2小时”)
#output:
Timedelta('2 days 02:00:00')
----------------------------------- ----------- 
pd.Timedelta(天数= 2,秒数= 2)
#output:
Timedelta('2 days 00:00:02')
----------------------------------- ----------- 
#个整数,单位为
pd.Timedelta(2,unit =“ d”),单位为1
#output:
Timedelta('2 days 00:00:00')
----------------------------------- ----------- 
#一个NaT 
pd.Timedelta(“ nan”)
#输出:
NaT 
---------------------------------------------- 
pd.Timedelta(“ nat”)
#输出:
NaT 
---------------------------------------------- #ISO 
8601持续时间字符串
pd.Timedelta(“ P0DT0H1M0S”)
#output:
Timedelta('0 days 00:01:00')

现在,我们将添加两个新参数,即周期和频率。周期取决于频率。周期是数据根据每年,每月或每天的频率变化的次数。

#根据年份的周期更改
s_year = pd.Series(pd.date_range(“ 2020-1-1”,period = 5,freq =“ Y”))
s_year
#每月的周期更改
s_month = pd.Series(pd.date_range(“ 2020-1-1”,period = 5,freq =“ M”))
s_month
#每天的周期更改
s_day = pd.Series(pd.date_range(“ 2020-1-1”,period = 5,freq =“ D”))
s_day

结论:

时间序列基础知识的基础非常适合于使用日期和时间数据帧进行分析。制定日期和时间索引可以极大地帮助您分析记录中的数据和时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端仙人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值