zoukankan      html  css  js  c++  java
  • Pandas时间差(Timedelta)

    时间差(Timedelta)是时间上的差异,以不同的单位来表示。例如:日,小时,分钟,秒。它们可以是正值,也可以是负值。
    可以使用各种参数创建Timedelta对象,如下所示 -

    字符串

    通过传递字符串,可以创建一个timedelta对象。参考以下示例代码 -

    import pandas as pd
    
    timediff = pd.Timedelta('2 days 2 hours 15 minutes 30 seconds')
    print(timediff)
    
    Python

    执行上面救命代码,得到以下结果 -

    2 days 02:15:30
    
    Shell

    整数

    通过传递一个整数值与指定单位,这样的一个参数也可以用来创建Timedelta对象。

    import pandas as pd
    
    timediff = pd.Timedelta(6,unit='h')
    print(timediff)
    
    Python

    执行上面救命代码,得到以下结果 -

    0 days 06:00:00
    
    Shell

    数据偏移

    例如 - 周,天,小时,分钟,秒,毫秒,微秒,纳秒的数据偏移也可用于构建。

    import pandas as pd
    
    timediff = pd.Timedelta(days=2)
    print(timediff)
    
    Python

    执行上面救命代码,得到以下结果 -

    2 days 00:00:00
    
    Shell

    运算操作

    可以在Series/DataFrames上执行运算操作,并通过在datetime64 [ns]系列或在时间戳上减法操作来构造timedelta64 [ns]系列。参考以下示例代码 -

    import pandas as pd
    
    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))
    print(df)
    
    Python

    执行上面示例代码,得到以下结果 -

               A      B
    0 2012-01-01 0 days
    1 2012-01-02 1 days
    2 2012-01-03 2 days
    
    Shell

    相加操作

    import pandas as pd
    
    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)
    
    Python

    执行上面示例代码,得到以下结果 -

               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
    
    Shell

    相减操作

    import pandas as pd
    
    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)
    
    Python

    执行上面示例代码,得到以下结果 -

               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
  • 相关阅读:
    笔试:一个逻辑题
    jmeter,学这些重点就可以了
    性能测试:通过一个案例(等待锁超时)告诉你,性能到底要不要熟悉业务逻辑?
    源码解读:webdriver client的原理 (面试自动化:如果你认为知道18种定位方式就算会自动化,那就太low了)
    测试必备:jmeter测试http协议接口的各种传参方式
    Vue笔记:封装 axios 为插件使用
    Vue笔记:使用 axios 发送请求
    Tomcat笔记:Tomcat的执行流程解析
    Git笔记:Git介绍和常用命令汇总
    Spring Boot使用Shiro实现登录授权认证
  • 原文地址:https://www.cnblogs.com/navysummer/p/9641199.html
Copyright © 2011-2022 走看看