如何在Pandas中将时间戳转换为距离当日零点的分钟数整数
Pandas时间字符串转零点分钟数实现方案
你之前用to_numeric()失败是因为该函数仅支持转换纯数值格式内容,无法识别带冒号分隔符的时间字符串,可通过以下两种方案实现需求:
方案1:基于Pandas内置时间类型转换(推荐)
利用pd.to_timedelta直接识别hh:mm:ss格式字符串为时间差类型,再通过总秒数计算分钟数:
import pandas as pd # 替换df为你的DataFrame对象名,time_col为存储时间字符串的列名 df['minutes_from_midnight'] = (pd.to_timedelta(df['time_col']).dt.total_seconds() // 60).astype(int)
该方案兼容性强,即使输入时间存在格式不规范(如1:2:3这种缺省前导零的格式)也能正常解析。
方案2:字符串拆分计算(性能更高)
如果你的数据量极大,也可以直接拆分时间字符串提取小时、分钟计算,跳过时间类型转换开销:
# 拆分时分秒并转换为整数 h, m, _ = df['time_col'].str.split(':', expand=True).astype(int).values.T df['minutes_from_midnight'] = h * 60 + m
两种方案处理09:25:59时的输出结果均为565,符合需求。
内容的提问来源于stack exchange,提问作者Balaji
相关产品推荐
相关产品推荐

