解决pandas读取xlsx时将超24小时的时长错转为日期时间格式的问题
解决方案
推荐最简便的方案:读取文件时强制指定时长列为字符串类型,避免pandas自动转换为datetime格式,后续按需转换为时间差类型即可。
- 读取时指定列类型
import pandas as pd # 替换为你实际的文件路径和时长列名 df = pd.read_excel("文件路径.xlsx", dtype={"处理时长": str})
- 转换为可计算的时间差类型
如果后续需要对时长做求和、求平均等数值计算,可以直接转成pandas的Timedelta类型:
df["处理时长"] = pd.to_timedelta(df["处理时长"]) # 示例:换算为总小时数 df["总小时数"] = df["处理时长"].dt.total_seconds() / 3600
如果已经把文件读入,且时长列已经被错误识别为datetime64类型,可以用以下方法修复:
base = pd.Timestamp("1900-01-01") # 扣除excel 1900日期系统的1天初始误差 df["处理时长"] = df["处理时长"].apply(lambda x: x - base - pd.Timedelta(days=1))
内容的提问来源于stack exchange,提问作者Ultor
相关产品推荐
相关产品推荐

