Pandas导入Excel时非日期数据被自动转日期的解决方法
解决办法
方法1:针对目标列强制以字符串读取
使用pd.read_excel的converters参数,指定容易被误判为日期的列(按索引,因你设置了header=None)强制转换为字符串,直接保留原始的“1-Jan”格式,避免被自动解析为日期。
示例代码:
filename = 'excel.xlsx' # 假设问题出在第0列,多列可写成 {0: str, 2: str} 格式 datadf = pd.read_excel(filename, header=None, converters={0: str})
方法2:全局禁用自动类型推断(全列按字符串读取)
如果不确定哪些列会出现误判,或多列存在混合类型,可直接指定dtype=str让所有列以字符串格式读取,彻底杜绝日期自动解析问题。
示例代码:
filename = 'excel.xlsx' datadf = pd.read_excel(filename, header=None, dtype=str)
导出时保证格式保留
导出到Excel时,使用openpyxl作为引擎(需先安装:pip install openpyxl),确保字符串类型列不会被Excel自动转为日期格式:
datadf.to_excel('output.xlsx', header=None, index=False, engine='openpyxl')
补充说明
若部分列原本是数字,转成字符串后导出会变为文本格式数字,如需保留数字类型,建议先定位出易误判日期的列,仅对这些列用converters设为字符串,其他列保持自动推断即可。
内容的提问来源于stack exchange,提问作者umbrellas
相关产品推荐
相关产品推荐

