
本文介绍了如何使用Python将时间四舍五入到最接近的20分钟间隔。通过自定义函数`round_dt`,可以灵活地实现时间的向上或向下调整,使其符合20分钟的间隔要求。此外,本文还展示了如何将此函数应用于Pandas DataFrame中的时间列,以便批量处理时间数据。
Python时间四舍五入到指定间隔
在数据处理中,经常需要将时间数据进行规整,例如将时间四舍五入到最接近的指定间隔。本文将介绍如何使用Python的datetime模块实现将时间四舍五入到最接近的20分钟间隔,并将其应用于Pandas DataFrame。
自定义时间四舍五入函数
首先,我们需要定义一个函数,该函数接受一个datetime对象和一个timedelta对象作为输入,并将datetime对象四舍五入到最接近的timedelta间隔。
from datetime import datetime, timedeltadef round_dt(dt, delta): increase = (datetime.min - dt) % delta if increase < delta / 2: return dt + increase else: return dt + increase - delta# 示例now = datetime(2023, 2, 24, 12, 21, 00)print(now) print(round_dt(now, timedelta(minutes=20)))
在上述代码中,round_dt函数首先计算dt距离上一个delta间隔的差值increase。如果increase小于delta的一半,则将dt向上调整increase,否则将dt向下调整delta – increase。
将函数应用于Pandas DataFrame
接下来,我们将展示如何将round_dt函数应用于Pandas DataFrame中的时间列。
import pandas as pdfrom functools import partialdata = pd.DataFrame({'Experiment_ID': [52.0, 52.1, 52.2, 55.0, 55.1, 55.2, 56.0, 56.1, 56.2, 56.3, 56.4, 57.0, 57.1, 57.2, 59.0, 59.1, 60.0, 61.0, 62.0, 62.1, 62.2, 63.0, 63.1, 64.0, 64.1, 64.2, 65.0, 65.1, 65.2, 66.0],'Datetime': ['2023-02-24 11:34:00', '2023-02-24 12:37:00', '2023-02-24 13:36:00', '2023-03-08 11:13:00', '2023-03-08 12:18:00', '2023-03-08 13:18:00', '2023-03-16 10:03:00', '2023-03-16 11:03:00', '2023-03-16 11:40:00', '2023-03-16 12:06:00', '2023-03-16 13:04:00', '2023-03-22 10:56:00', '2023-03-22 12:05:00', '2023-03-22 13:09:00', '2023-04-05 11:25:00', '2023-04-05 12:35:00', '2023-04-07 12:50:00', '2023-04-11 15:00:00', '2023-04-13 10:47:00', '2023-04-13 11:47:00', '2023-04-13 12:47:00', '2023-04-19 10:45:00', '2023-04-19 13:00:00', '2023-04-20 10:36:00', '2023-04-20 11:33:00', '2023-04-20 12:35:00', '2023-04-26 10:53:00', '2023-04-26 12:01:00', '2023-04-26 12:30:00', '2023-05-11 10:22:00']})# 将'Datetime'列转换为datetime对象data['Datetime'] = pd.to_datetime(data['Datetime'])# 使用functools.partial预先绑定delta参数round_to_20min = partial(round_dt, delta=timedelta(minutes=20))# 将round_dt函数应用于'Datetime'列data['Datetime_Rounded'] = data['Datetime'].apply(round_to_20min)print(data)
在上述代码中,我们首先使用pd.to_datetime函数将DataFrame中的’Datetime’列转换为datetime对象。然后,我们使用functools.partial函数预先绑定round_dt函数的delta参数,创建一个新的函数round_to_20min,该函数只接受一个datetime对象作为输入。最后,我们使用apply函数将round_to_20min函数应用于’Datetime’列,并将结果存储在新的’Datetime_Rounded’列中。
总结
本文介绍了如何使用Python将时间四舍五入到最接近的20分钟间隔。通过自定义函数round_dt,可以灵活地实现时间的向上或向下调整,使其符合20分钟的间隔要求。此外,本文还展示了如何将此函数应用于Pandas DataFrame中的时间列,以便批量处理时间数据。使用functools.partial可以简化代码,提高可读性。
以上就是将时间四舍五入到最接近的20分钟间隔的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1377977.html
微信扫一扫
支付宝扫一扫