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

如何将指定格式时间及DataFrame中datetime列转为当日分钟数?

问题1:将'YYYY-mm-dd HH:MM:SS.[]'格式时间转换为当日分钟数

如果是字符串格式的时间,先把它转为datetime对象,再计算与当日0点的时间差,最后将总秒数除以60得到含小数的分钟数:

from datetime import datetime

# 示例时间字符串
time_str = "2024-05-20 14:30:45.678"
# 解析字符串为datetime对象(.%f匹配毫秒/微秒部分)
dt = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S.%f")
# 获取当日0点时间
midnight = dt.replace(hour=0, minute=0, second=0, microsecond=0)
# 计算时间差并转为分钟数
minutes_since_midnight = (dt - midnight).total_seconds() / 60
问题2:在Pandas DataFrame中生成当日分钟数字段

已知df的date列是datetime64[ns]类型,有两种简洁实现方式:

方法一:利用时间差计算

import pandas as pd

# 计算每条记录的当日0点
df['midnight'] = df['date'].dt.floor('D')
# 计算时间差并转为分钟数,生成浮点型列
df['minutes'] = (df['date'] - df['midnight']).dt.total_seconds() / 60
# 不需要midnight列的话可以删除
df.drop('midnight', axis=1, inplace=True)

方法二:拆分时分秒计算

直接提取小时、分钟、秒、微秒,按分钟单位换算后相加:

df['minutes'] = (df['date'].dt.hour * 60 
                 + df['date'].dt.minute 
                 + df['date'].dt.second / 60 
                 + df['date'].dt.microsecond / (60 * 10**6))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:33:28