您的位置:首页 > 新闻 > 会展 > 23-Padans Timedelta时间差

23-Padans Timedelta时间差

2025/5/24 0:00:58 来源:https://blog.csdn.net/qwy715229258163/article/details/140138080  浏览:    关键词:23-Padans Timedelta时间差

Padans Timedelta时间差

Timedelta 表示时间差(或者时间增量),我们可以使用不同的时间单位来表示它,比如,天、小时、分、秒。时间差的最终的结果可以是正时间差,也可以是负时间差。

Timedelta类周期名、对应单位及其说明:

周期说明单位说明
weeks星期
daysD
hoursh小时
minutesm
secondss
millisecondsms毫秒
microsecondsμs微妙
naosecondsns纳秒

实例:

import pandas as pd
import numpy as np
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']for s  in date_str:print(f"雇佣时间:{s},雇佣后的第二天:{pd.to_datetime(s)+pd.Timedelta(days=1)}")
雇佣时间:1980-12-17,雇佣后的第二天:1980-12-18 00:00:00
雇佣时间:1981-02-20,雇佣后的第二天:1981-02-21 00:00:00
雇佣时间:1981-02-22,雇佣后的第二天:1981-02-23 00:00:00
雇佣时间:1981-04-02,雇佣后的第二天:1981-04-03 00:00:00
雇佣时间:1981-09-28,雇佣后的第二天:1981-09-29 00:00:00
雇佣时间:1981-05-01,雇佣后的第二天:1981-05-02 00:00:00
雇佣时间:1981-06-09,雇佣后的第二天:1981-06-10 00:00:00
雇佣时间:1987-04-19,雇佣后的第二天:1987-04-20 00:00:00
雇佣时间:1981-11-17,雇佣后的第二天:1981-11-18 00:00:00
雇佣时间:1981-09-08,雇佣后的第二天:1981-09-09 00:00:00
雇佣时间:1987-05-23,雇佣后的第二天:1987-05-24 00:00:00
雇佣时间:1981-12-03,雇佣后的第二天:1981-12-04 00:00:00
雇佣时间:1981-12-03,雇佣后的第二天:1981-12-04 00:00:00
雇佣时间:1982-01-23,雇佣后的第二天:1982-01-24 00:00:00

字符串

通过传递字符串可以创建 Timedelta 对象,示例如下:

print(pd.Timedelta('5 days 8 hours 6 minutes 59 seconds'))

输出结果:

5 days 08:06:59

整数

通过传递整数值和unit参数也可以创建一个 Timedelta 对象。

import pandas as pd
print(pd.Timedelta(19,unit='h'))

输出结果:

0 days 19:00:00

数据偏移量

数据偏移量, 比如,周(weeks)、天(days)、小时(hours)、分钟(minutes)、秒(milliseconds)、毫秒、微秒、纳秒都可以使用。

import pandas as pd
print (pd.Timedelta(days=2,hours=6))

输出结果:

2 days 06:00:00

to_timedelta()

您可以使用pd.to_timedelta()方法,将具有 timedelta 格式的值 (标量、数组、列表或 Series)转换为 Timedelta 类型。如果输入是 Series,则返回 Series;如果输入是标量,则返回值也为标量,其他情况输出 TimedeltaIndex。示例如下:

import pandas as pd
import numpy as np
print(pd.to_timedelta(['1 days 06:05:01.00003', '15.5us', 'nan']))
print(pd.to_timedelta(np.arange(5), unit='s'))

输出结果:

TimedeltaIndex(['1 days 06:05:01.000030', '0 days 00:00:00.000015500', NaT], dtype='timedelta64[ns]', freq=None)
TimedeltaIndex(['0 days 00:00:00', '0 days 00:00:01', '0 days 00:00:02','0 days 00:00:03', '0 days 00:00:04'],dtype='timedelta64[ns]', freq=None)

算术操作

通过对datetime64[ns]类型的时间序列或时间戳做算术运算,其运算结果依然是datetime64[ns]数据类型。接下来,我们创建一个带有 Timedelta 与 datetime 的 DataFrame 对象,并对其做一些算术运算。

import pandas as pd
from datetime import datetime
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']for s  in date_str:print(f"雇佣时间:{s},雇佣时间:{datetime.now()-pd.to_datetime(s)}")

输出结果:

雇佣时间:1980-12-17,雇佣时间:15903 days 22:33:24.413328
雇佣时间:1981-02-20,雇佣时间:15838 days 22:33:24.416003
雇佣时间:1981-02-22,雇佣时间:15836 days 22:33:24.417749
雇佣时间:1981-04-02,雇佣时间:15797 days 22:33:24.419878
雇佣时间:1981-09-28,雇佣时间:15618 days 22:33:24.420235
雇佣时间:1981-05-01,雇佣时间:15768 days 22:33:24.420235
雇佣时间:1981-06-09,雇佣时间:15729 days 22:33:24.420235
雇佣时间:1987-04-19,雇佣时间:13589 days 22:33:24.421580
雇佣时间:1981-11-17,雇佣时间:15568 days 22:33:24.421580
雇佣时间:1981-09-08,雇佣时间:15638 days 22:33:24.421580
雇佣时间:1987-05-23,雇佣时间:13555 days 22:33:24.421580
雇佣时间:1981-12-03,雇佣时间:15552 days 22:33:24.421580
雇佣时间:1981-12-03,雇佣时间:15552 days 22:33:24.422997
雇佣时间:1982-01-23,雇佣时间:15501 days 22:33:24.422997

加法运算

import pandas as pd
import numpy as np
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']for s  in date_str:print(f"雇佣时间:{s},雇佣后的第二天:{pd.to_datetime(s)+pd.Timedelta(days=1)}")

输出结果:

雇佣时间:1980-12-17,雇佣后的第二天:1980-12-18 00:00:00
雇佣时间:1981-02-20,雇佣后的第二天:1981-02-21 00:00:00
雇佣时间:1981-02-22,雇佣后的第二天:1981-02-23 00:00:00
雇佣时间:1981-04-02,雇佣后的第二天:1981-04-03 00:00:00
雇佣时间:1981-09-28,雇佣后的第二天:1981-09-29 00:00:00
雇佣时间:1981-05-01,雇佣后的第二天:1981-05-02 00:00:00
雇佣时间:1981-06-09,雇佣后的第二天:1981-06-10 00:00:00
雇佣时间:1987-04-19,雇佣后的第二天:1987-04-20 00:00:00
雇佣时间:1981-11-17,雇佣后的第二天:1981-11-18 00:00:00
雇佣时间:1981-09-08,雇佣后的第二天:1981-09-09 00:00:00
雇佣时间:1987-05-23,雇佣后的第二天:1987-05-24 00:00:00
雇佣时间:1981-12-03,雇佣后的第二天:1981-12-04 00:00:00
雇佣时间:1981-12-03,雇佣后的第二天:1981-12-04 00:00:00
雇佣时间:1982-01-23,雇佣后的第二天:1982-01-24 00:00:00

减法运算

import pandas as pd
import numpy as np
empdata = pd.read_csv("C:\\Users\\qwy\\Desktop\\data\\empdata.csv")date_str =empdata.loc[:,'HIREDATE']for s  in date_str:print(f"雇佣时间:{s},雇佣的前一天:{pd.to_datetime(s)-pd.Timedelta(days=1)}")

输出结果:

雇佣时间:1980-12-17,雇佣的前一天:1980-12-16 00:00:00
雇佣时间:1981-02-20,雇佣的前一天:1981-02-19 00:00:00
雇佣时间:1981-02-22,雇佣的前一天:1981-02-21 00:00:00
雇佣时间:1981-04-02,雇佣的前一天:1981-04-01 00:00:00
雇佣时间:1981-09-28,雇佣的前一天:1981-09-27 00:00:00
雇佣时间:1981-05-01,雇佣的前一天:1981-04-30 00:00:00
雇佣时间:1981-06-09,雇佣的前一天:1981-06-08 00:00:00
雇佣时间:1987-04-19,雇佣的前一天:1987-04-18 00:00:00
雇佣时间:1981-11-17,雇佣的前一天:1981-11-16 00:00:00
雇佣时间:1981-09-08,雇佣的前一天:1981-09-07 00:00:00
雇佣时间:1987-05-23,雇佣的前一天:1987-05-22 00:00:00
雇佣时间:1981-12-03,雇佣的前一天:1981-12-02 00:00:00
雇佣时间:1981-12-03,雇佣的前一天:1981-12-02 00:00:00
雇佣时间:1982-01-23,雇佣的前一天:1982-01-22 00:00:00

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com