CSV文件编辑保存后日期变数字的原因及解决方法咨询
CSV编辑保存后日期变数字的原因及解决办法
现象对比
- 保存前日期显示:

- 保存后日期变为数字:

原因
- CSV本质是纯文本文件,不支持存储格式信息:你在Excel里看到的日期,后台其实是序列号(以1900年1月1日为基准1,每过一天加1),日期格式只是Excel的显示效果,并非CSV文件里的真实内容。
- 编辑工具的自动转换:用Excel或代码编辑CSV时,如果没有明确指定日期列的处理规则,工具会直接读取底层的序列号数值,而非保留文本形式的日期,最终保存时就会把数字写入文件。
避免方法
- Excel操作时先转文本格式:打开CSV后,选中日期列,右键选择「设置单元格格式」→ 选「文本」,确认后重新输入或刷新日期内容,确保日期以纯文本形式存储再进行编辑保存。
- 代码编辑时显式处理日期:以Python pandas为例:
# 方式1:直接按字符串读取日期列,避免自动解析 import pandas as pd df = pd.read_csv('source.csv', dtype={'日期列名': str}) # 执行添加列、更新值等操作 df.to_csv('updated.csv', index=False) # 方式2:解析日期后转为指定格式的字符串保存 df = pd.read_csv('source.csv', parse_dates=['日期列名']) df['日期列名'] = df['日期列名'].dt.strftime('%Y/%m/%d') # 自定义日期格式 df.to_csv('updated.csv', index=False) - 用纯文本编辑器修改:如果修改内容简单,直接用Notepad++、VS Code等文本编辑器打开CSV,手动编辑文本形式的日期,完全避开Excel的自动格式转换。
内容的提问来源于stack exchange,提问作者Ericwhv
相关产品推荐
相关产品推荐

