如何将datetime类型时间数据四舍五入到最近的分钟(min)单位
时间数据四舍五入到分钟单位解决方案
Python Pandas 处理
如果你的数据是用Pandas存储的DataFrame,直接使用内置的时间处理方法即可:
import pandas as pd # 示例数据构造,实际使用时替换为读取你的数据源 df = pd.DataFrame({ 'Time': ['2021-11-23 08:07:35', '2021-11-09 23:12:13'] }) # 转换为时间类型后四舍五入到分钟 df['Time'] = pd.to_datetime(df['Time']).dt.round('min')
输出结果和期望效果完全一致。
纯Python 原生处理
不需要第三方依赖的实现方式:
from datetime import datetime, timedelta def round_minute(dt: datetime) -> datetime: # 秒数>=30则进1分钟,否则直接清零秒 if dt.second >= 30: dt += timedelta(minutes=1) return dt.replace(second=0, microsecond=0) # 测试示例 time1 = datetime.strptime('2021-11-23 08:07:35', '%Y-%m-%d %H:%M:%S') time2 = datetime.strptime('2021-11-09 23:12:13', '%Y-%m-%d %H:%M:%S') print(round_minute(time1)) # 2021-11-23 08:08:00 print(round_minute(time2)) # 2021-11-09 23:12:00
Excel 处理
假设时间数据存储在A列,在空白列输入公式:
=ROUND(A2*1440,0)/1440
之后将单元格格式设置为yyyy-mm-dd hh:mm:ss即可。
MySQL 处理
如果数据存储在MySQL中,直接用SQL语句处理:
SELECT FROM_UNIXTIME(ROUND(UNIX_TIMESTAMP(`Time`) / 60) * 60) AS rounded_time FROM 你的表名;
内容的提问来源于stack exchange,提问作者sirimiri
相关产品推荐
相关产品推荐

