zoukankan      html  css  js  c++  java
  • Python时间相关处理

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

    python标准库包含于日期(data)和时间(time)数据的数据类型,datetime ime以及calendar模块会被经常用到

    datetime以毫秒形式存储日期和时间,datetime.timedelta表示两个datetime对象之间的时间差

    给datetime对象加上或减去一个或多个timedelta,会产生一个新的对象。

    datetime模块中的数据类型

    date:以公历形式存储日历日期(年、月、日)

    time:将时间存储时、分、秒、毫秒

    datetime:存储和日期

    timedelta:表示两个datetime值之间的差(日、秒、毫秒)

     

    字符串和datetime的相互转换

    1)Python标准库函数

    日期转换成字符串:利用str或strftime

    字符串转换成日期:datetime.strptime

    2)第三方库dateutil.parser的时间解析函数

    3)pandas处理成组日期

    pandas通常用于处理成组日期,不管这些日期是DataFrame的轴索引还是列,to_datetime方法可以解析多种不同的日期表示形式

    pandas时间序列基础以及时间、日期处理

    pandas最基本的时间序列类型就是以时间戳(时间点)(通常以python字符串或datetime对象表示)为索引的series

    pandas不同索引的时间序列之间的算术运算会自动按日期对齐

    索引为日期的Series和DataFrame数据的索引、选取以及子集构造方法

    1).index[number_int]   #得到序列值

    2)[一个可以被解析为日期的字符串]

    3)对于较长的时间序列,只需要传入年或年月可返回对应的数据切片

    带有重复索引的时间序列

    1).index.is_unique检查索引日期是否是惟一的

    2)对于非唯一时间戳的数据进行聚合,通过groupby,并传入level=0(索引的唯一一层)

     1 from datetime import datetime
     2 
     3 stamp=datetime(2017,6,27)
     4 
     5 str(stamp)
     6 
     7 stamp.strftime("%y-%m-%d")
     8 
     9 #对多个时间进行解析成字符串
    10 date=["2017-6-26","2017-6-27"]
    11 
    12 datetime2=[datetime.strptime(x,"%Y-%m-%d") for x in date]
    13 
    14 datetime2
    15 
    16 
    17 #第三方库dateutil.parser的时间解析函数
    18 from dateutil.parser import parse
    19 
    20 parse('2017-6-27')
    21 
    22 parse("27/6/2017",dayfirst=True)
    23 
    24 
    25 date
    26 
    27 import pandas as pd
    28 pd.to_datetime(date)
    29 
    30 
    31 
    32 ###pandas时间序列基础及时间、日期处理
    33 dates=['2017-06-20','2017-06-21','2017-06-22','2017-06-23','2017-06-24','2017-06-25','2017-06-26','2017-06-27']
    34 
    35 import numpy as np
    36 ts=pd.Series(np.random.randn(8),index=pd.to_datetime(dates))
    37 
    38 #pandas不同索引的时间序列之间的算术运算会自动按日期对齐
    39 ts[::2]
    40 
    41 ts+ts[::2]
    42 
    43 
    44 ###索引为日期的Series和DataFrame数据的索引、选取以及子集构造方法
    45 ts[ts.index[2]]
    46 
    47 ts["2017-06-21"]  #传入可以被解析成日期的字符串
    48 
    49 ts['21/06/2017']
    50 
    51 ts['20170621']
    52 
    53 ts["2017-06"]
    54 
    55 ts['2017-06-20':'2017-06-23']
    56 
    57 
    58 ###带有重复索引的时间序列
    59 dates=pd.DatetimeIndex(['2017/06/01','2017/06/02','2017/06/02','2017/06/02','2017/06/03'])
    60 dates
    61 
    62 dup_ts=pd.Series(np.arange(5),index=dates)
    63 dup_ts
    64 
    65 dup_ts.index.is_unique
    66 
    67 dup_ts["2017-06-02"]
    68 
    69 grouped=dup_ts.groupby(level=0).mean()   #索引的唯一一层
    70 
    71 
    72 
    73 dup_df=pd.DataFrame(np.arange(10).reshape((5,2)),index=dates)
    74 dup_df
    75 
    76 grouped_df=dup_df.groupby(level=0).mean()
    View Code

    -----摘自:https://blog.csdn.net/ly_ysys629/article/details/73822716

  • 相关阅读:
    electron入坑指南
    记CSS格式化上下文
    Ruby安装Scss
    向量
    产生指定范围的随机数
    纯CSS 图片演示
    socket 函数
    C++网络套接字编程TCP和UDP实例
    技巧收藏
    伤心啊
  • 原文地址:https://www.cnblogs.com/U940634/p/9791864.html
Copyright © 2011-2022 走看看