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默认从毫秒开始,所以时间一直在变化
    我们可以简单优化处理一下

  • 相关阅读:
    ecshop 商品分类下的销售排行
    ecshop批量清除商品的精品新品热销属性
    ECSHOP二次开发之给商品增加新字段
    ECSHOP首页调用文章内的缩略图
    ECSHOP给分类添加代表图
    ECSHOP首页促销商品下显示促销时间
    鼠标点击后更换背景
    ECSHOP如何修改商品评论或留言的日期
    ECSHOP设置指定IP才能登录后台
    ecshop远程图片本地化保存相册图片
  • 原文地址:https://www.cnblogs.com/cxxBoo/p/13884575.html
Copyright © 2011-2022 走看看