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

如何在Python中将HH:MM:SS格式字符串转换为整数?

将HH:MM:SS格式字符串转为整数小时的方法

针对你遇到的问题,直接用astype(int)无法转换带冒号的时间字符串,需要先提取小时部分再转整数,以下是几种可行方案:

方法1:字符串分割提取小时

通过冒号分割字符串,取第一个元素后转换为整数:

import pandas as pd

data = ['01:00:00','02:00:00','03:00:00','04:00:00']
df = pd.DataFrame(data, columns=['Numbers'])

df['Hour'] = df['Numbers'].str.split(':').str[0].astype(int)

执行后Numbers列的01:00:00会转为整数1,02:00:00转为2,以此类推。

方法2:利用datetime工具提取小时

先将字符串转为datetime类型,再提取小时属性,这种方式更适合后续有时间相关操作的场景:

df['Hour'] = pd.to_datetime(df['Numbers'], format='%H:%M:%S').dt.hour

该方法会自动处理前导零,直接返回整数格式的小时数。

方法3:正则表达式提取数字

用正则提取字符串开头的数字部分,适配格式略有变化的情况(比如无前置零的1:00:00):

df['Hour'] = df['Numbers'].str.extract('^(\d+)').astype(int)

补充说明

astype(int)直接报错的原因是01:00:00属于非数字格式的字符串,Python无法直接将包含冒号的字符串转换为整数,必须先提取出纯数字的小时部分再进行类型转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:01:00