zoukankan      html  css  js  c++  java
  • Pandas Timedelta

    1.Timedelta基本概念

    首先导入pandas库

    import pandas as pd;
     
    • 1

    Timedelta在pandas中是一个表示两个datetime值之间的差(如日,秒和微妙)的类型,2个Datetime数据运算相减得出的结果就是一个Timedelta数据类型

    Datetime只支持+操作,其余运算符操作不会报错

    pd.to_datetime('2019-9-4') - pd.to_datetime('2018-1-1')
    
    • 1

    代码结果:

    Timedelta('611 days 00:00:00')
    
    • 1

    可以看到,结果是一个Timedelta类型,并且算出了2019年9月4日到2018年1月日共有多少天


    如果只写年默认1月1日

    pd.to_datetime('2019-9-4') - pd.to_datetime('2018')
    
    • 1

    代码结果:

    Timedelta('611 days 00:00:00')
    
    • 1

    只写年月默认1日

    pd.to_datetime('2019-9-4') - pd.to_datetime('2018-1')
    
    • 1

    代码结果:

    Timedelta('611 days 00:00:00')
    
    • 1

    可以看到结果是一样的

    Timedelta参数

    通过字符串传递参数

    pd.Timedelta('3 days 3 hours 3 minutes 30 seconds')
    
    • 1

    代码结果:

    Timedelta('3 days 03:03:30')
    
    • 1

    通过整数传递参数

    pd.Timedelta(5,unit='d')
    
    • 1

    代码结果:

    Timedelta('5 days 00:00:00')
    
    • 1

    通过数据偏移

    pd.Timedelta(days=2)
    
    • 1

    代码结果:

    Timedelta('2 days 00:00:00')
    
    • 1

    以上方法可根据喜好使用

    2.Timedelta简单利用

    计算生日为1993年5月27日的人今年的年龄

    age = (pd.to_datetime('2019-9-4') - pd.to_datetime('1993-5-27')) / pd.Timedelta(days=365)
    print(age)
    
    • 1
    • 2

    代码结果:

    26.29041095890411
    
    • 1

    计算生日为1993年5月27日的人今年的年龄


    当然也可以用pd.datetime.now()获取当前时间

    age = (pd.datetime.now() - pd.to_datetime('1993-5-27')) / pd.Timedelta(days=365)
    print(age)
    
    • 1
    • 2

    代码结果:

    26.29180006733137
    
    • 1

    可以看到结果有所不同,那是因为datetime默认从毫秒开始,所以时间一直在变化
    我们可以简单优化处理一下

  • 相关阅读:
    Mybatis中的like模糊查询
    Cookie
    架构师的自我修养
    微服务要面临的问题
    为啥要去IOE——分布式架构的由来
    分层架构设计
    如何选开源协议
    中国互联网20年简史
    2018第27周总结
    保住本金,安全第一
  • 原文地址:https://www.cnblogs.com/cxxBoo/p/13884575.html
Copyright © 2011-2022 走看看