zoukankan      html  css  js  c++  java
  • 时间序列学习笔记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模块数据类型:

    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)
    

    待续。。。

  • 相关阅读:
    Linux课程实践一:Linux基础实践(SSH)
    《恶意代码分析实战》读书笔记 静态分析高级技术一
    Linux课程实践四:ELF文件格式分析
    Linux课程实践三:简单程序破解
    Linux课程实践二:编译模块实现内核数据操控
    2020.12.19 加分项和课程意见/建议
    博客已换
    [题解] LuoguP4983 忘情
    [题解] LuoguP4767 [IOI2000]邮局
    [题解] LuoguP2791 幼儿园篮球题
  • 原文地址:https://www.cnblogs.com/felo/p/6411610.html
Copyright © 2011-2022 走看看