发 帖  
原厂入驻New
[问答]

什么是Timedelta?

71 Timedelta Pandas
分享
timedelta基本概念  
Timedelta参数  

Timedelta简单利用
0
2020-11-6 07:02:55   评论 分享淘帖 邀请回答
3个回答
Timedelta基本概念
首先导入pandas库
import pandas as pd;
Timedelta在pandas中是一个表示两个datetime值之间的差(如日,秒和微妙)的类型,2个Datetime数据运算相减得出的结果就是一个Timedelta数据类型
Datetime只支持+操作,其余运算符操作不会报错
pd.to_datetime('2019-9-4') - pd.to_datetime('2018-1-1')
代码结果:
Timedelta('611 days 00:00:00')
可以看到,结果是一个Timedelta类型,并且算出了2019年9月4日到2018年1月日共有多少天
如果只写年默认1月1日
pd.to_datetime('2019-9-4') - pd.to_datetime('2018')
代码结果:
Timedelta('611 days 00:00:00')
只写年月默认1日
pd.to_datetime('2019-9-4') - pd.to_datetime('2018-1')
代码结果:
Timedelta('611 days 00:00:00')
可以看到结果是一样的
2020-11-6 14:07:07 评论

举报

Timedelta参数
通过字符串传递参数
pd.Timedelta('3 days 3 hours 3 minutes 30 seconds')
代码结果:
Timedelta('3 days 03:03:30')
通过整数传递参数
pd.Timedelta(5,unit='d')
代码结果:
Timedelta('5 days 00:00:00')
通过数据偏移
pd.Timedelta(days=2)
代码结果:
Timedelta('2 days 00:00:00')
以上方法可根据喜好使用
2020-11-6 14:07:35 评论

举报

Timedelta简单利用
计算生日为1993年5月27日的人今年的年龄
age = (pd.to_datetime('2019-9-4') - pd.to_datetime('1993-5-27')) / pd.Timedelta(days=365)print(age)
代码结果:
26.29041095890411
计算生日为1993年5月27日的人今年的年龄
当然也可以用pd.datetime.now()获取当前时间
age = (pd.datetime.now() - pd.to_datetime('1993-5-27')) / pd.Timedelta(days=365)print(age)
代码结果:
26.29180006733137
可以看到结果有所不同,那是因为datetime默认从毫秒开始,所以时间一直在变化
我们可以简单优化处理一下
2020-11-6 14:08:13 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表