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

如何避免Python Pandas读取Excel时将字符串转为datetime类型?

解决方案

问题根源

pd.read_excel()的dtype参数有时无法完全覆盖自动类型推断——尤其是当Excel单元格本身是日期格式时,pandas会优先解析为datetime类型,哪怕你指定了dtype=str。

可行解决方法

1. 关闭自动日期解析

直接设置parse_dates=False,彻底阻止pandas识别日期格式:

df = pd.read_excel(file, dtype=str, parse_dates=False)

2. 使用converters强制转换为字符串

converters参数优先级高于自动类型推断,可针对所有列或指定列强制转为字符串:

  • 针对所有列:
# 先获取工作表的列名
sheet = pd.ExcelFile(file).parse(pd.ExcelFile(file).sheet_names[0])
df = pd.read_excel(file, converters={col: str for col in sheet.columns})
  • 针对特定列(比如第一列,假设列名为col_0):
df = pd.read_excel(file, converters={'col_0': str})

3. 读取后强制转换

如果上述方法无效,可在读取完成后将目标列转为字符串:

df = pd.read_excel(file)
df['目标列名'] = df['目标列名'].astype(str)

4. 检查Excel单元格格式

确保Excel中第一行的目标单元格格式设置为文本而非日期格式。若Excel本身存储的是日期类型,pandas读取时更容易触发自动解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:20:20