时间序列学习笔记1

时间序列数据是一种重要的结构化数据形式。一般有几种:

  • 时间戳:timestamp,特定的时刻
  • 固定时期:period,如2010年全年
  • 时间间隔:interval,有起始和结束时间戳表示;
  • 实验或过程时间,每个时间点都是相对于特定时间的一个变量。

pandas提供一组标准时间序列处理工具和数据算法。

1. 日期和时间数据类型及工具

datetime模块:

In [1]: from datetime import datetime

In [2]: now = datetime.now()

In [3]: now
Out[3]: datetime.datetime(2017, 2, 17, 21, 11, 17, 866138)

In [4]: now.year,now.month,now.day
Out[4]: (2017, 2, 17)

时间差:timedelta

In [5]: delta = datetime(2011,1,7) - datetime(2008,6,24,7,14)

In [6]: delta
Out[6]: datetime.timedelta(926, 60360)

In [7]: delta.days
Out[7]: 926

In [8]: delta.seconds
Out[8]: 60360

In [9]: from datetime import timedelta

In [10]: start = datetime(2008,1,6)

In [11]: start + timedelta(12)  # 传入days
Out[11]: datetime.datetime(2008, 1, 18, 0, 0)

In [12]: start - 2*  timedelta(12)
Out[12]: datetime.datetime(2007, 12, 13, 0, 0)

datetime模块数据类型:

866969-20170217213940644-687971176.png

1.1 字符串和datetime的相互转换

In [13]: stamp = datetime(2011,1,3)

In [14]: str(stamp)  # 转换为字符串
Out[14]: '2011-01-03 00:00:00'

In [15]: stamp.strftime('%Y-%m-%d')  # 格式化为字符串
Out[15]: '2011-01-03'

# 可以转换我们日常用的格式

In [20]: from dateutil.parser import parse

In [21]: parse('2017-01-03')
Out[21]: datetime.datetime(2017, 1, 3, 0, 0)

In [22]: parse('Jan 31, 2017 10:23 PM')
Out[22]: datetime.datetime(2017, 1, 31, 22, 23)

In [23]: parse('02/11/2017')
Out[23]: datetime.datetime(2017, 2, 11, 0, 0)
# pandas模块的时间转换模块

In [25]: datestrs = ['7/6/2014','2/4/2016']

In [26]: import pandas as pd

In [27]: pd.to_datetime(datestrs)
Out[27]: DatetimeIndex(['2014-07-06', '2016-02-04'], dtype='datetime64[ns]', freq=None)

In [28]: idx = pd.to_datetime(datestrs + [None])

In [29]: idx
Out[29]: DatetimeIndex(['2014-07-06', '2016-02-04', 'NaT'], dtype='datetime64[ns]', freq=None)

In [30]: idx[2]
Out[30]: NaT

In [31]: pd.isnull(idx)
Out[31]: array([False, False,  True], dtype=bool)

866969-20170217214000738-1159885715.png

866969-20170217214012660-1666944074.png

866969-20170217214024066-120956591.png

待续。。。

转载于:https://www.cnblogs.com/felo/p/6411610.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值