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

Python将Pandas中时间字符串列转换为分钟整数的方法

把Pandas中'travel_time'字符串列转换为分钟整数的方法

针对你的需求,这里提供两种实用的实现方式,都能准确区分小时和分钟单位,避免直接提取数字导致的错误:

方法1:字符串提取+数值计算

通过正则提取小时和分钟的数值,再转换为总分钟数,适合需要自定义处理逻辑的场景:

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'travel_time': ['1 hour 10 mins', '34 mins', '58 mins', '1 hour 32 mins', '12 mins']
})

# 提取小时数(无小时信息则填充0)
df['hours'] = df['travel_time'].str.extract(r'(\d+) hour').fillna(0).astype(int)
# 提取分钟数
df['minutes'] = df['travel_time'].str.extract(r'(\d+) mins').astype(int)
# 计算总分钟数
df['total_mins'] = df['hours'] * 60 + df['minutes']

# 可选:删除中间辅助列
df = df.drop(['hours', 'minutes'], axis=1)

方法2:利用Pandas时间差函数(更简洁)

Pandas的pd.to_timedelta可以直接识别这类时长字符串,转换为时间差对象后再提取总分钟数:

df['total_mins'] = pd.to_timedelta(df['travel_time']).dt.total_seconds() // 60
# 转换为整数类型
df['total_mins'] = df['total_mins'].astype(int)

关键说明

不能直接去除所有非数值内容,比如1 hour 10 mins直接提取数字会得到110,完全不符合实际时长。必须根据单位(hour/mins)分别提取数值后再换算求和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:15:25