You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas dataframe的datetime列四舍五入到最近小时问题

问题原因

  • dt.hour本身是整数类型,round(dt.hour)的计算结果和原值完全一致,不会触发小时的调整逻辑
  • 你当前的代码是对小时、分钟两个字段独立做四舍五入,没有实现联动计算,分钟≥30需要给小时进位的规则没有覆盖,甚至当分钟round后等于60时,还会抛出参数范围错误(datetime类型的分钟合法取值范围为0-59)

解决方案

直接使用pandas datetime序列内置的round方法,指定舍入频率为1小时即可,无需手写apply自定义逻辑,运算效率更高也不会出现边界错误:

import pandas as pd

# 首先确保date列是datetime格式,如果已经完成类型转换可以跳过该行
tweet_and_price_df["date"] = pd.to_datetime(tweet_and_price_df["date"])
# 直接将日期列舍入到最近的小时
tweet_and_price_df["date"] = tweet_and_price_df["date"].dt.round("H")

如果确实需要自定义逻辑实现舍入,需要额外判断分钟是否≥30、小时进位后是否超过23需要跨天等边界场景,逻辑相对繁琐,优先使用内置方法即可。

内容的提问来源于stack exchange,提问作者jd_h2003

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:45:07