Python Pandas – 返回新的Timedelta并将其舍入到此分辨率
简介
在数据分析或处理的过程中,经常需要计算时间差或时间间隔。Pandas库提供了一个Timedelta对象来表示一个持续时间。Timedelta对象可以用来进行时间的加减、比较和格式化等操作。在本文中,我们将重点介绍如何返回新的Timedelta并将其舍入到此分辨率。
Timedelta对象
Timedelta对象表示两个日期或时间之间的差异。它包含天、小时、分钟、秒、毫秒和微秒的属性,并提供了各种方法来处理这些属性。
我们可以使用pd.Timedelta()函数来创建Timedelta对象。例如,在下面的代码中创建了一个表示3天和2小时的Timedelta对象:
import pandas as pd
td = pd.Timedelta(days=3, hours=2)
print(td)
输出结果为:
3 days 02:00:00
我们也可以将字符串转换为Timedelta对象,只需将字符串传递给pd.Timedelta()函数即可。例如,在下面的代码中创建了一个表示3天和2小时的Timedelta对象:
td = pd.Timedelta('3 days 2 hours')
print(td)
输出结果为:
3 days 02:00:00
Timedelta的算术操作
Timedelta对象可以进行算术操作,例如加法和减法。在下面的代码中,分别计算了两个Timedelta对象之间的差异和两个日期之间的差异:
import pandas as pd
td1 = pd.Timedelta(days=3, hours=2)
td2 = pd.Timedelta(days=1, hours=4)
diff = td1 - td2
print(diff)
date1 = pd.Timestamp('2021-11-01')
date2 = pd.Timestamp('2021-11-04')
diff = date2 - date1
print(diff)
输出结果为:
2 days 22:00:00
3 days 00:00:00
Timedelta的比较操作
Timedelta对象可以使用大于号、小于号等进行比较操作。在下面的代码中,比较了两个Timedelta对象的大小:
import pandas as pd
td1 = pd.Timedelta(days=3, hours=2)
td2 = pd.Timedelta(days=1, hours=4)
print(td1 > td2)
输出结果为:
True
Timedelta的格式化
Timedelta对象可以使用strftime()方法格式化为自定义的字符串。在下面的代码中,将Timedelta对象格式化为小时和分钟的字符串:
import pandas as pd
td = pd.Timedelta(days=3, hours=2, minutes=30)
print(td.strftime('%H:%M'))
输出结果为:
02:30
Timedelta的舍入
我们可以使用round()方法来将Timedelta对象舍入到指定的分辨率。在下面的代码中,将Timedelta对象舍入到分钟的分辨率:
import pandas as pd
td = pd.Timedelta(days=3, hours=2, minutes=30, seconds=45)
print(td.round('min'))
输出结果为:
3 days 02:31:00
结论
在本文中,我们学习了如何使用Python Pandas库的Timedelta对象来计算时间差或时间间隔,并介绍了如何进行算术操作、比较操作、格式化和舍入操作。Timedelta对象是Pandas库在进行时间序列分析和数据处理时非常有用的工具之一。
极客笔记