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

pandas读取文本/JSON文件时时间格式识别错误 如何转小时/分钟浮点数

解决方案

方案1:读取时保留时间字段为字符串(推荐,避免信息损失)

你可以在构造DataFrame时指定时间列的类型为字符串,阻止pandas自动将HH:MM:SS格式的时间推断为整数:

import pandas as pd
import json
import codecs

data = json.load(codecs.open(p1, 'r', 'utf-8-sig'))
# 把下方的`time_col`替换为你实际的时间字段名
df1 = pd.DataFrame(data, dtype={'time_col': str})

之后通过pd.to_timedelta将时间字符串转换为时间差类型,再计算对应浮点数:

  • 转换为小时格式浮点数:
df1['hour_float'] = pd.to_timedelta(df1['time_col']).dt.total_seconds() / 3600
# 示例结果:02:42:59 转换后约为 2.716
  • 转换为分钟格式浮点数:
df1['minute_float'] = pd.to_timedelta(df1['time_col']).dt.total_seconds() / 60
# 示例结果:02:42:59 转换后约为 162.983

方案2:直接处理已读取的整数字段

如果时间字段已经被识别为整数,且该整数为时间距当日0点的总秒数,可直接计算:

# 转小时浮点数
df1['hour_float'] = df1['time_col'] / 3600

# 转分钟浮点数
df1['minute_float'] = df1['time_col'] / 60

如果整数单位不是秒,根据实际单位调整除数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:00