• ​​​​​​​Pandas时间差(Timedelta)及时间范围(date_range)操作

    发布时间:2020-08-31 22:41:00
    作者:ynkulusi
  • 时间差(Timedelta)是时间上的差异,以不同的单位来表示。例如:日,小时,分钟,秒。它们可以是正值,也可以是负值。
    可以使用各种参数创建 Timedelta 对象

    通过传递字符串,可以创建一个 timedelta 对象。参考以下示例代码 -
    import pandas as pd
    timediff = pd.Timedelta('2 days 2 hours 15 minutes 30 seconds')
    print(timediff)
    执行上面救命代码,得到以下结果 -
    2 days 02:15:30

    通过传递一个整数值与指定单位,这样的一个参数也可以用来创建 Timedelta 对象。
    timediff = pd.Timedelta(6,unit='h')
    print(timediff)
    执行上面救命代码,得到以下结果 -
    0 days 06:00:00

    例如 - 周,天,小时,分钟,秒,毫秒,微秒,纳秒的数据偏移也可用于构建。
    timediff = pd.Timedelta(days=2)
    print(timediff)
    执行上面救命代码,得到以下结果 -
    2 days 00:00:00

    s = pd.Series(pd.date_range('2018-1-1', periods=3, freq='D'))
    td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
    df = pd.DataFrame(dict(A = s, B = td))
    df['C']=df['A']+df['B']
    print(df)
    执行上面示例代码,得到以下结果 -
               A      B          C
    0 2018-01-01 0 days 2018-01-01
    1 2018-01-02 1 days 2018-01-03
    2 2018-01-03 2 days 2018-01-05

    s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
    td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
    df = pd.DataFrame(dict(A = s, B = td))
    df['C']=df['A']+df['B']
    df['D']=df['C']-df['B']
    print(df)
    执行上面示例代码,得到以下结果 -
               A      B          C          D
    0 2018-01-01 0 days 2018-01-01 2018-01-01
    1 2018-01-02 1 days 2018-01-03 2018-01-02
    2 2018-01-03 2 days 2018-01-05 2018-01-03

    pd.date_range('20200601',periods=7)   #生成7个间隔1天的连续日期系列
    pd.date_range('20200601','20200603',freq='H')   #生成2020年6月1日0时到2020年6月3日0时之间以整小时为间隔的连续时间系列
    datelist = pd.date_range('2020/11/21', periods=5,freq='M')   #按月为周期输出最近5个月的月末日期
    datelist = pd.bdate_range('2020/11/03', periods=5)   #生成5个工作日期范围,bdate是排除周六周日
    datelist = pd.date_range('16:00:00', periods=5,freq='U')   #freq='U'是微秒,T是分钟,S是秒,L是毫秒,N是纳秒

    大量的字符串别名被赋予常用的时间序列频率。我们把这些别名称为偏移别名。
    别名    描述说明
    B    工作日频率
    BQS    商务季度开始频率
    D    日历/自然日频率
    A    年度(年)结束频率
    W    每周频率
    BA    商务年底结束
    M    月结束频率
    BAS    商务年度开始频率
    SM    半月结束频率
    BH    商务时间频率
    SM    半月结束频率
    BH    商务时间频率
    BM    商务月结束频率
    H    小时频率
    MS    月起始频率
    T, min    分钟的频率
    SMS    SMS半开始频率
    S    秒频率
    BMS    商务月开始频率
    L, ms    毫秒
    Q    季度结束频率
    U, us    微秒
    BQ    商务季度结束频率
    N    纳秒
    BQ    商务季度结束频率
    QS    季度开始频率
  • 分类:python
    标签: pandas
    评论数:0 阅读数:865