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

  • 相关阅读:
    VMware Workstation的三种网络连接方式
    sql:unix下的sql操作
    linux脚本: makefile以及链接库
    unix shell: ksh fundamental(Korn Shell)
    linux c: core dump
    linux命令:scp
    Eclipse更改默认工作目录的方法
    linux: 可重入函数与不可重入函数
    linux环境 :Linux 共享库LIBRARY_PATH, LD_LIBRARY_PATH 与ld.so.conf
    linux命令:Linux命令大全
  • 原文地址:https://www.cnblogs.com/cxxBoo/p/13884575.html
Copyright © 2020-2023  润新知