首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >四舍五入时间到最近的小时python

四舍五入时间到最近的小时python
EN

Stack Overflow用户
提问于 2018-02-23 05:56:06
回答 4查看 27.9K关注 0票数 14

我试图在数据帧中将时间四舍五入到python中最接近的小时。

假设如果时间戳是2017-11-18 0:16,它应该作为2017-11-18 0:00出现,而2017-11-18 1:56应该四舍五入为2017-11-18 2:00

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-02-23 06:45:02

我用jpp做了一点实验,但最终得到了一个不同的解决方案,因为在23小时添加一个小时会导致崩溃。

代码语言:javascript
复制
from datetime import datetime, timedelta

now = datetime.now()

def hour_rounder(t):
    # Rounds to nearest hour by adding a timedelta hour if minute >= 30
    return (t.replace(second=0, microsecond=0, minute=0, hour=t.hour)
               +timedelta(hours=t.minute//30))

print(now)
print(hour_rounder(now))

返回:

代码语言:javascript
复制
2018-02-22 23:42:43.352133
2018-02-23 00:00:00
票数 30
EN

Stack Overflow用户

发布于 2018-02-23 06:04:33

这是一种方法。

代码语言:javascript
复制
from datetime import datetime

now = datetime.now()

def rounder(t):
    if t.minute >= 30:
        return t.replace(second=0, microsecond=0, minute=0, hour=t.hour+1)
    else:
        return t.replace(second=0, microsecond=0, minute=0)

now           # 2018-02-22 22:03:53.831589
rounder(now)  # 2018-02-22 22:00:00.000000
票数 11
EN

Stack Overflow用户

发布于 2018-02-23 06:20:09

代码语言:javascript
复制
import pandas as pd

pd.Timestamp.now().round('60min').to_pydatetime()

返回:

代码语言:javascript
复制
datetime.datetime(2018, 2, 23, 0, 0)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48937900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档